串口通讯:python

时间:2017-11-07 10:14:22

标签: python python-2.7 serialization

我正在使用Python Anaconda 2.7。我想使用串行通信切换端口,但我收到错误:AttributeError: 'module' object has no attribute 'Serial'

我的示例程序是:

import serial 
import time 
#remember to adjust “COM3”
port = serial.Serial("COM3", 19200, timeout=0.5) 
#turn on port 2, sleep 2 seconds, turn off port 2 
port.write(b"\nF2\r") 
time.sleep(2.0) 
port.write(b"\nF2\r")             
#turn on port 2 and 7, sleep 2 seconds, turn off port 2 and 7 
port.write(b"\nF2\r\nF7\r") 
time.sleep(2) 
port.write(b"\nF2\r\nF7\r")             
#close the port 
port.close()

我尝试了很多解决方案:

  1. 从' serial.py'更改文件名到' any_other_name.py'反之亦然
  2. 删除相关的.pyc文件
  3. 安装' pip install pyserial'
  4. 执行来自串口导入序列号
  5. 当我从心理学中运行相同的程序时,它工作得非常好。我不知道如何解决它。如果有人可以给我一些建议,那将对我有很大的帮助。提前感谢你。

    拉​​维

1 个答案:

答案 0 :(得分:1)

您的代码似乎很好,因此您遇到的问题可能是由于导入错误。

你真的应该避免将你的python脚本命名为"标准" modules(serial.py,string.py ...),因为通过这样做,你会暴露自己意外导入那些文件而不是正确的文件(可能发生在你身上的事情)。

如果您需要确定要导入的内容,请尝试以下操作:

import serial
print serial.__file__  # this will tell you the position of the file you've imported and help you to be sure of what you're using.

# in case you're not importing a module, only a class... try this : 
help(serial) # even without any help, it will give you at the end the path where this object is defined :)