コンテンツ
コマンド
$ python serial.py
エラーメッセージ例
python serial.py Traceback (most recent call last): File "serial.py", line 7, in <module> import serial File "/home/t/201402python/serial.py", line 9, in <module> ser = serial.Serial('/dev/ttyACM0', 9600, timeout=0) AttributeError: 'module' object has no attribute 'Serial'
import serialで使うpyserialをインストールしていてもダメ
また、インタラクティブシェルですら失敗する
解決方法
現在のフォルダにある「serial.py」を別の名前(myserial.pyなど)にする
mv serial.py myserial.py
成功例
python Python 2.7.3 (default, Aug 1 2012, 05:16:07) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import serial >>>
ファイル名=モジュール名とすると、pythonがファイル名とモジュール名を勘違いして「そんなモジュール無いよ」と言い出します。
pythonがモジュールを探す順序が
・現在のフォルダ
・pipで入れたモジュールがあるフォルダ
のため、現在のフォルダにモジュール名と同じファイル(serial.py)があるとそれをモジュールと勘違いしてimportしようとする→でも実際にはモジュールでも何でもない、ただのpythonコード のため、エラーで死にます。
pythonでのファイル名はモジュール名とは違うものにした方がいいです。先頭が数字でもたしかimport時はダメなので、pythonのファイル名は気をつけたほうが良さそう