1

Arduino で例を試しています: http://playground.arduino.cc/Interfacing/Python

この例 (Ubuntu で実行) は、シェルでうまく機能します。

import serial

ser = serial.Serial('/dev/ttyACM0', 9600)

while True:
    print(ser.readline())

ただし、スクリプトとして実行しようとしています:

デスクトップ/python_arduino/./serial.py ...

これを実行するもの:

#!/usr/bin/env python
import serial

ser = serial.Serial('/dev/ttyACM0', 9600)

while True:
    print(ser.readline())

そして、私はこれを取得します:

Traceback (most recent call last):
  File "Desktop/python_arduino/./serial.py", line 2, in <module>
    import serial
  File "/home/leo/Desktop/python_arduino/serial.py", line 4, in <module>
    ser = serial.Serial('/dev/ttyACM0', 9600)
AttributeError: 'module' object has no attribute 'Serial'

この不一致の原因は何ですか? import serialシェルやスクリプトに関係なく簡単にできるはずですよね?

4

2 に答える 2

2

見つけた!

問題は実際には微妙ですが単純でした。

スクリプト ファイル名はインポートと同じ名前でした。

したがって、ファイル名はserial.py でした。モジュールはserialと呼ばれるため、競合が発生しました。

スクリプトのファイル名を変更したところ、うまくいきました。

于 2013-10-14T20:18:06.073 に答える