2017-11-07 28 views
0

私はPython Anaconda 2.7を使用しています。私は多くのソリューションを試してみましたシリアル通信:python

import serial 
import time 
#remember to adjust “COM3” 
port = serial.Serial("COM3", 19200, timeout=0.5) 
#turn on port 2, sleep 2 seconds, turn off port 2 
port.write(b"\nF2\r") 
time.sleep(2.0) 
port.write(b"\nF2\r")    
#turn on port 2 and 7, sleep 2 seconds, turn off port 2 and 7 
port.write(b"\nF2\r\nF7\r") 
time.sleep(2) 
port.write(b"\nF2\r\nF7\r")    
#close the port 
port.close() 

  1. からファイル名を変更し、私はシリアル通信を使用してポートを切り替えるしたいと思います、しかし、私はエラーを取得しています:AttributeError: 'module' object has no attribute 'Serial'

    私のサンプルプログラムです'serial.py'を 'any_other_name.py'に、それ以外の場合は

  2. 関連する.pycファイルを削除する
  3. 'pip install pyserial'
  4. シリアルインポートからシリアル

をやって、私はpsychopyから同じプログラムを実行すると、それは本当に正常に動作しています。私はそれを解決する方法を知らない。誰かが私に示唆を与えることができるなら、それは私にとって大きな助けになるでしょう。よろしくお願いします。

ラヴィ

答えて

1

あなたのコードが良いようですので、あなたが遭遇する問題は、おそらく悪い輸入によるものです。

pythonスクリプトの名前を「標準」モジュール(serial.py、string.py ...)とするのは避けてください。これを行うと、間違って正しいファイルの代わりにそれらのファイルをインポートする可能性がありますおそらくあなたに何が起こったのか)。あなたが輸入しているもののことを確認する必要がある場合

、これを試してみてください。

import serial 
print serial.__file__ # this will tell you the position of the file you've imported and help you to be sure of what you're using. 

# in case you're not importing a module, only a class... try this : 
help(serial) # even without any help, it will give you at the end the path where this object is defined :) 
+0

私は最初のコードを実行しようとするとエラーが来ている:「ModuleNotFoundError:という名前のモジュール 『』」シリアル。 。help(serial)で私に 'NameError:name' serial 'が定義されていません。..誰にでもこの問題を解決するアイデアはありますか? –

+1

私は問題を解決しました。私はpython anaconda spyderを使用しています。そのために、「pip install pyserial」ではなく「conda install pyserial」をインストールする必要がありました。 –

+0

あなたはPythonの2つの異なるインストールを使用していたので、ときどきシリアルが見つからないことがあります。 –