python没有名为serial的模块
我的python程序有问题。我编写这个程序是为了从arduino获取数据(温度)到我的raspberry pi sqlite数据库。但它在第4行(导入序列)中给出了一个错误,上面写着“ImportError:没有名为serial的模块”。我使用python3,并且已经更新了pyserial。我是python新手,所以我犯了一些错误python没有名为serial的模块,python,database,sqlite,Python,Database,Sqlite,我的python程序有问题。我编写这个程序是为了从arduino获取数据(温度)到我的raspberry pi sqlite数据库。但它在第4行(导入序列)中给出了一个错误,上面写着“ImportError:没有名为serial的模块”。我使用python3,并且已经更新了pyserial。我是python新手,所以我犯了一些错误 #!/ussr/bin/python # -*- coding: utf-8 -*- import serial import datetime impo
#!/ussr/bin/python
# -*- coding: utf-8 -*-
import serial
import datetime
import sqlite3 as lite
import sys
import time
ser = serial.Serial('/dev/ttyACM1', 9600, timeout=1)
ser.open()
count = 0
con = lite.connect('realtime_data.db')
try:
while 1:
indata = ser.readline()
current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
count = count + 1
print (count)
with con:
cur = con.cursor()
cur.execute("INSERT INTO Temperatures VALUES( ?, ?, ? )", (count, current_time, indata))
if count > 100:
cur.execute("DELETE FROM Temperatures")
count = 0
# time.sleep(3) #upload to database every 5 seconds
except KeyboardInterrupt:
ser.close()
这里有一个关于你的问题。之后,您可以使用pip
安装与python-3.x兼容的pyserial
,如下所示:
$ sudo pip3 install pyserial
下面介绍如何使用与python-3.x兼容的源代码安装pyserial
注意:如果你的平台上同时有python-2.x和python-3.x,比如Arch Linux,那么当你想安装一些软件包时,您应该小心选择软件包应与哪个python版本兼容,然后使用
pip2
或pip3
获取并安装这些软件包。如果您保存的文件名与模块名相同,则会出现错误。
例如,如果您的文件名为“serial.py”,并且您已导入serial,那么它将首先在serial.py中检查您声明的方法。我没有使用Arduino或raspberrypi进行编程,但在安装python模块时存在一个常见问题,我有时会遇到这个问题。有时有些模块是为python2.x而不是3.x安装的。您可以打开一个交互式shell并尝试导入模块来验证它们是为哪个版本安装的。几乎不可能给您提供有意义的建议,因为我们不知道您的Python3位于何处。您面临这个问题的原因可能是
pip
安装了用于python2而不是python3的包。我的建议是简单地使用Python2,两者之间没有重大区别。是的,你是对的。pip为python2安装了软件包,我刚刚检查过。有没有办法把它安装到python3上?我的意思是,这是我的第一个python程序,我并不擅长它。两者的区别是什么?这个程序花了我一段时间来写…谢谢你的帮助。成功了。我以前卸载过python2,但为了在python3上安装pip,在sudopip-3.2安装pyserial之后,我使用sudo apt get install python3 pip。问题解决了,但我现在面临另一个问题。它说端口已经打开。@AlbertSm,使用shell命令netstat-npl
查看哪个进程使用该端口,并由您决定是否终止该端口。在代码中,我试图打开该端口,但我不知道python3已经为您做了这件事。这就是错误所在。它现在正在工作,只是为了添加,如果找不到pip3命令,请使用此命令ls/usr/bin/pip*
获取它的替代品/替换品。对我来说,是pip-3.2