我正在尝试从TI Chronos获取加速度计数据,当我运行代码时出现以下错误消息:
Traceback (most recent call last):
File "C:\Python32\chronos_accel.py", line 50, in <module>
.
.
.
raise SerialException("could not open port %s: %s" % (self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port COM4: [Error 5] Access is denied.
为什么拒绝访问?我是系统管理员。这可能是代码的问题吗?
谢谢,
杰
答案 0 :(得分:17)
此类错误的最常见原因是端口已被其他应用程序打开,或者经常被 代码的先前(已执行但被遗忘)实例打开。
要测试这个假设,最简单的方法是运行一些其他程序,当你收到错误时打开同一个端口(例如Hyperterminal)。如果它也失败了,试着找出谁在拿着这个端口。
此外,Portmon是调试串口问题的有用工具。
答案 1 :(得分:15)
我明白了。很简单,我只是在设备管理器窗口中禁用了COM端口并再次启用它。
答案 2 :(得分:4)
由于这是一个热门搜索结果,我正在更新它以添加另一个也会创建“拒绝访问”错误的情况:端口权限实际上设置为拒绝正常用户访问!一些系统管理员锁定端口有充分的理由,因此只有具有管理员权限的用户才能访问。
最简单的解决方法是以管理员身份运行cmd.exe。请参阅:http://www.howtogeek.com/howto/windows-vista/run-a-command-as-administrator-from-the-windows-vista-run-box/
摘要:Win + r,“cmd”,Shift + Ctrl + Enter
“它对我有用!” (TM)
答案 3 :(得分:0)
以管理员身份从cmd运行python也适用于我。
运行:
在搜索
右键单击并选择以管理员身份运行
答案 4 :(得分:0)
有时端口被阻塞。 尝试重新启动系统。它对我有用。
答案 5 :(得分:0)
我今天在Jupyter Notebook中遇到类似的错误,并设法通过Anaconda导航器而不是通过 Anaconda Prompt 来打开Jupyter Notebook来解决了这个问题。