当我想使用串行库时,我收到此错误:
$ ./console.py Traceback(最近一次调用最后一次):文件 “./console.py”,第7行,in import serial ImportError:没有名为serial的模块
我在Windows7中有Cygwin
$ uname -a CYGWIN_NT-6.1 ES-T20019350 1.7.24(0.269 / 5/3)2013-08-15 11:59 x86_64 Cygwin
我的Python版本是3:
Python 3.2.5(默认,2013年7月30日,20:11:30)
有人可以告诉我如何让序列工作?我需要这个来运行到我的串口的串行流量:
#!/usr/bin/python3
# =======================================
# establish communication using python
# =======================================
import time
import serial
# initialization and open the port
# possible timeout values:
# 1. None: wait forever, block call
# 2. 0: non-blocking mode, return immediately
# 3. x, x is bigger than 0, float allowed, timeout block call
ser = serial.Serial()
#ser.port = "/dev/ttyUSB0"
ser.port = "/dev/ttyS3"
#ser.port = "/dev/ttyS2"
ser.baudrate = 115200
ser.bytesize = serial.EIGHTBITS #number of bits per bytes
ser.parity = serial.PARITY_NONE #set parity check: no parity
ser.stopbits = serial.STOPBITS_ONE #number of stop bits
#ser.timeout = None #block read
ser.timeout = 0 #non-block read
#ser.timeout = 2 #timeout block read
ser.xonxoff = False #disable software flow control
ser.rtscts = False #disable hardware (RTS/CTS) flow control
ser.dsrdtr = False #disable hardware (DSR/DTR) flow control
ser.writeTimeout = 2 #timeout for write
try:
ser.open()
except getopt.GetoptError as e:
print ("error openning serial port",str(e))
exit()
if ser.isOpen():
try:
ser.flushInput() #flush input buffer, discarding all its contents
ser.flushOutput()#flush output buffer, aborting current output
#and discard all that is in buffer
#write data
ser.write("ac_spi_slash 3\x0D")
print("ac_spi_slash 3 sent\x0D")
time.sleep(0.5) #give the serial port sometime to receive the data
numOfLines = 0
while True:
response = ser.readline()
print("read data: " + response)
numOfLines = numOfLines + 1
if (numOfLines >= 5):
break
ser.close()
except getopt.GetoptError as e1:
print ("error communicating...: ",str(e1));
else:
print ("cannot open serial port ")
答案 0 :(得分:0)
我最近正在处理这个问题,你可能会遇到同样的问题。
这个线程指出一个问题,即使你正确地设置路径变量,使用python.org安装程序的python标准安装不能很好地与cygwin一起使用: Using Windows Python from Cygwin
我的解决方案是允许cygwin安装程序进行单独的python安装: cygwin setup.exe - >然后选择'python:Python语言解释器'
然后抓住pyserial库(通常只是一个名为'serial'的文件夹)并复制到C:\ cygwin \ lib \ pythonX.X \ site-packages \
这样交互模式可以工作,pyserial包可以在标准的cygwin搜索路径中找到。