python没有名为serial的模块

时间:2013-12-13 05:06:04

标签: python database sqlite

我的python程序有问题。我编写了程序来从arduino获取数据(温度)到我的raspberry pi sqlite数据库。但它在第4行(导入序列)中给出了一个错误,说“ImportError:没有名为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()

2 个答案:

答案 0 :(得分:16)

以下是关于How to install pip with Python 3?的问题。之后,您可以使用pip安装与python-3.x兼容的pyserial,如下所示:

$ sudo pip3 install pyserial

以下是关于如何使用与python-3.x兼容的源代码安装pyserial的{​​{3}}

PS:如果你的平台上有python-2.x和python-3.x,比如Arch Linux,当你想安装一些软件包时,你应该小心选择哪个python版本的软件包兼容使用,然后使用pip2pip3来获取并安装这些软件包。

答案 1 :(得分:1)

如果您保存的文件名与模块名称相同,那么它将给您错误。 例如,如果您的文件名是“serial.py”并且您有导入序列号,那么它将首先检查serial.py中是否已声明的方法。