我的python程序有问题。我编写这个程序是为了把数据(温度)从arduino送到我的raspberry pi sqlite数据库。但在第4行(导入序列号)出现了一个错误,说“importterror:没有名为serial的模块”。我使用python3并且已经更新了pyserial。我是python新手,所以我犯了一些错误。。。
#!/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()
如果您保存的文件名与模块名相同,则它将给您错误。 例如,如果您的文件名是“serial.py”,并且您已经导入了serial,那么它将首先签入serial.py中以获取您声明的方法。
这里有一个关于How to install pip with Python 3?的问题。之后,可以使用
pip
安装与python-3.x兼容的pyserial
,如下所示:这里有一个doc关于如何使用与python-3.x兼容的源代码安装
pyserial
注意:如果您的平台上同时有python-2.x和python-3.x,比如Arch Linux,那么当您想安装一些包时,您应该小心地选择包应该与哪个python版本兼容,然后使用
pip2
或pip3
来获取和安装这些包。相关问题 更多 >
编程相关推荐