【问题标题】:SerialException: could not open port (Access is denied)SerialException:无法打开端口(访问被拒绝)
【发布时间】:2022-01-08 23:52:51
【问题描述】:

我正在 Windows7 操作系统中编写 Python v2.x。当我运行我的代码时,经常会出现以下错误。

serial.serialutil.SerialException: could not open port 'COM4': WindowsError(5, 'Access is denied.')

这是我所做的:

1)我查看设备管理器,COM 4可以看到,但是打不开

2) 在我的代码中,我在使用后关闭了COM 端口

3) 这是我代码中的COM 配置:ser = serial.Serial( "COM4", 9600, timeout=0.05)

4) 我重启电脑,问题消失了,但过了一会儿又出现了

5) 不知道是我的 Python 代码还是 Windows 系统的问题?

所以考虑到上述事实,有人可以帮助我吗?谢谢,新年快乐!

=)

【问题讨论】:

  • COM口配置相关的部分在这里:ser = serial.Serial("COM4", 9600, timeout=0.05)
  • 这还不够......需要看看你是如何使用ser......或者可能是你认为它不相关但它可能是其他东西。
  • 嗯.. 我想我明白了。我注意到错误消息说我的python是win32bit,但是,我的系统是win64 ......这可能是原因吗?如果是这样,为什么...?
  • 很可能,您的COM4 端口正被另一个进程使用...检查您是否有另一个应用程序在使用它...
  • 是的..我确实考虑过,但我只运行一个串行关闭的程序。但我想检查它是否被另一个应用程序占用。你能告诉我如何检查吗?

标签: python serial-port


【解决方案1】:

我打开了 Ultimaker Cura Slicer(用于我的 3D 打印机),并且出于某种原因控制了 COM3 端口。一旦我杀死了那个应用程序,它(VSCode)就可以很好地将代码上传到我的 ESP-8266

【讨论】:

  • 天哪。我本可以花几个小时摆弄设置,但我从来没有想过 Cura 可能是问题所在。谢谢!
  • 遇到了完全相同的问题!你救了我的一天! :D
  • 很好的提示!关闭 Cura 使其立即生效。
【解决方案2】:

您的 COM4 端口可能在 arduino IDE 串行监视器中打开。
关闭 arduino IDE 中的串行监视器。
这可能会解决您的问题。

【讨论】:

  • 理想情况下,您应该解释如何在 arduino ide 中关闭它,因为它并不明显......
【解决方案3】:

您是否在执行项目后关闭了连续剧? 也许您可以在每次执行程序时尝试关闭端口并再次打开它。 就像:

ser = Serial('COM3', 115200)
if not ser.isOpen():
    ser.open()
print('com3 is open', ser.isOpen())

【讨论】:

    【解决方案4】:

    就我而言,我将ser = serial.Serial('COM4') 放在了一个while 循环中。在这种情况下,python 会在每次 while 循环重复时尝试打开串行端口,而之前的演练没有关闭该串行端口

    【讨论】:

    • 这与其他现有答案没有什么不同。
    【解决方案5】:

    我在尝试从我的 Windows 10 PC 下载代码到 ESP32 时遇到了这个问题。我从https://serial-port-monitor.org 下载并安装了 Serial Port Monitor 应用程序,这表明我的 MalwareBytes Antimalware 正在干扰打开端口。我禁用了 MBAM 勒索软件保护,一切都很好。完成后记得重新开启勒索软件保护!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-10
      • 2016-04-17
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多