在Python/Win7上使用串行

在Python/Win7上使用串行,python,windows-7,serial-port,pyserial,Python,Windows 7,Serial Port,Pyserial,我正在尝试与串行WWAN调制解调器接口(用于诊断/信号强度测量)。这是通过我桌面上的机载COM1(115200-8-n-1),通过PuTTY连接。我可以使用Python编写AT命令的脚本,但是我很难让它打开串行端口 我已经按照说明安装了Python2.7.1和PySerial。我是我机器的本地管理员,在有管理员权限和无管理员权限的情况下运行Python,但当我尝试打开端口时,我得到以下信息: Python 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MS

我正在尝试与串行WWAN调制解调器接口(用于诊断/信号强度测量)。这是通过我桌面上的机载COM1(115200-8-n-1),通过PuTTY连接。我可以使用Python编写AT命令的脚本,但是我很难让它打开串行端口

我已经按照说明安装了Python2.7.1和PySerial。我是我机器的本地管理员,在有管理员权限和无管理员权限的情况下运行Python,但当我尝试打开端口时,我得到以下信息:

Python 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> s = serial.Serial(
...     port='COM1',
...     baudrate=115200
... )
>>> s.open()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\serial\serialwin32.py", line 56, in open
raise SerialException("could not open port %s: %s" % (self.portstr, ctypes.W
inError()))
serial.serialutil.SerialException: could not open port COM1: [Error 5] Access is
 denied.
win32上的Python 2.7.1(r271:8683220010年11月27日17:19:03)[MSC v.1500 64位(AMD64)] 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 >>>导入序列号 >>>s=串行。串行( …端口='COM1', …波特率=115200 ... ) >>>美国公开赛 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 打开文件“C:\Python27\lib\site packages\serial\serialwin32.py”,第56行 引发SerialException(“无法打开端口%s:%s”%(self.portstr,ctypes.W inError())) serial.serialutil.SerialException:无法打开端口COM1:[错误5]无法访问 否认。 据我所知,8-N-1是默认值,即使我尝试手动设置它们,它也会引发相同的异常

有人能提供建议吗?
提前谢谢。

您无需致电
open
。构造函数已经这样做了,在Windows上,任何打开COM端口的人都可以独占访问它,直到他们关闭它为止


至于第二个问题,请看一下

您需要在提升模式下运行
python.exe
。右键单击并单击
以管理员身份运行

以下是我如何消除
拒绝访问错误

  • 按Ctrl+Alt+Del

  • 选择
    pythonw.exe
    并按结束进程

  • 在空闲状态下重新运行应用程序


  • 它应该在没有任何拒绝访问错误的情况下运行。

    感谢@aix的响应。我在一个新的提升py会话中尝试了不同的语法,现在得到了一个稍微不同的错误:
    >se=serial.serial()>>se.baudrate=115200>>se.bytesize=8>>se.stopbits=1>>se.xonxoff=0>>se.rtscts=0>>se.port=0\r\n>>parity=serial.parity\u NONE>>se.isOpen()False>>se.open()>>se.write('AT\r\n')回溯(最近一次呼叫上次):。。。引发SerialException(“WriteFile失败(%s)”%ctypes.WinError())serial.serialutil.SerialException:WriteFile失败([错误6]句柄无效。)
    有什么想法吗?关于:format@user330600:您能否编辑您的问题以添加此新信息?代码/异常在注释中有点难读懂。@user330600:请看一看,谢谢!64位解释器是一个严重的问题。切换到32位工作!