Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python没有名为serial的模块_Python_Database_Sqlite - Fatal编程技术网

python没有名为serial的模块

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

我的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()
这里有一个关于你的问题。之后,您可以使用
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