155

Debianを実行しているRaspberryPiのPython2.6でシリアルポートにアクセスしようとしています。名前の付いた私のスクリプトはserial.pypySerialをインポートしようとします:

import serial
ser = serial.Serial('/dev/ttyAMA0', 9600)
ser.write("hello world!")

何らかの理由で、このエラーでシリアル接続を確立することを拒否します。

AttributeError: 'module' object has no attribute 'Serial'

インタラクティブなPythonインタープリターで同じコードを入力しようとしても、機能しません。

不思議なことに、それは約数時間前に機能していました。

何が問題なのですか?しばらくの間、これを修正しようとしました。pySerialを再度インストールし、コードを書き直し、シリアルポートを再確認しました。

4

8 に答える 8

212

私と同じ間違いを犯した人のために、このソリューションを追加しています。

ほとんどの場合:プロジェクトファイルの名前を「serial.py」に変更し、存在する場合はserial.pycを削除します。その後、属性エラーなしで単純な「importserial」を実行できます。

Pythonファイル名が「something.py」のときに「something」をインポートすると問題が発生します。

于 2012-08-08T21:19:10.737 に答える
175

sudo python -m pip install serial'pySerial'()の代わりに'serial'()を誤ってインストールsudo python -m pip install pyserialしたため、同じエラーが発生しました。

前述の解決策がうまくいかなかった場合は、正しいライブラリをインストールしたかどうかを再確認してください。

于 2017-10-30T13:27:01.040 に答える
128

クラスではなく、モジュールをインポートしています。したがって、次のように記述する必要があります。

from serial import Serial

serialモジュールを正しくインストールする必要があります: pip install pyserial

于 2012-07-09T22:21:46.857 に答える
43

' serial 'という名前の誤ったパッケージをインストールしました。

  • pip uninstall serialpython2.xまたはpython3.xでpip3 uninstall serial 実行します
  • 次に、python2.xまたはpython3.xを実行して、まだインストールされていない場合はpyserialをインストールします。pip install pyserialpip3 install pyserial
于 2018-03-22T04:35:30.267 に答える
9

この問題は、プロジェクトの名前がserial.pyであり、インポートされたライブラリの名前もserialであるためです。名前を変更すれば、それだけです。

于 2017-03-05T17:06:37.047 に答える
3

あなたが私のように無力であるならば、これを試してください:

ここで説明する方法で、「シリアル」(または問題が発生しているパッケージ)のすべてのサブモジュールを 一覧表示します。Pythonパッケージの一部であるすべてのモジュールを一覧表示します。

私の場合、問題は次々と解決しました。

...私にはバグのように見えます...

于 2014-11-01T15:16:32.100 に答える
1

このエラーは、循環依存関係がある場合にも発生する可能性があります。インポートをチェックして、サイクルがないことを確認してください。

于 2016-10-13T18:57:20.833 に答える
1

はい、このトピックは少し古いですが、とにかくそれを必要とするかもしれない人々のために私のために働いた解決策を共有したいと思いました

アリが言ったように、ターミナルから以下を使用してあなたのプログラムを見つけてみてください:

 sudo python3
 import serial

print(serial.__file__) ->コピー

CTRL+D #(to get out of python)

sudo python3->貼り付け/__init__.py

アクティベート__init__.pyすると、プログラムに「わかりました、python3のシリアルを使用します」と表示されます。私の問題は、私のpython3プログラムがpython2.7のSerialを使用していたことでした。

他の解決策:他のPythonバージョンを削除する

Cao

ソース: https ://raspberrypi.stackexchange.com/questions/74742/python-serial-serial-module-not-found-error/85930#85930

トライハード

于 2018-07-12T08:41:40.237 に答える