web-dev-qa-db-ja.com

pythonシリアルという名前のモジュールはありません

pythonプログラムに問題があります。arduinoからRaspberryPi sqliteデータベースにデータ(温度)を取得するプログラムを作成しましたが、line4(import serial)でエラーが発生します。 )「ImportError:シリアルという名前のモジュールはありません」と言っています。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()
7
AlbertSm

Python 3? でpipをインストールする方法。その後、pipを使用してpyserial互換をインストールできます。次のように、python-3.xを使用します。

$ Sudo pip3 install pyserial

これが doc python-3.xと互換性のあるソースコードを使用してpyserialをインストールする方法についてです

PS:Arch Linuxのように、プラットフォームにpython-2.xとpython-3.xの両方がある場合、いくつかのパッケージをインストールするときは、どちらのpythonパッケージのバージョンは互換性があり、pip2またはpip3を使用してこれらのパッケージを取得してインストールする必要があります。

16
flyer

保存したファイル名がモジュール名と同じ場合は、エラーが発生します。たとえば、ファイル名が「serial.py」で、インポートシリアルがある場合、最初に、宣言したメソッドをserial.pyでチェックインします。

1
Harshan Gowda