2013-01-01 13 views
16

Python 2.7.2で私のUbuntuボックスに最新のpySerialをインストールしましたが、ほとんどのものでうまくいきますが、 'tools'パッケージをインポートしようとすると、ツールを見つけることはできません。 documentation for pySerialは、この「ツール」パッケージを明示的に参照しています。pyserial:いいえ、モジュールという名前のツール

>>> from serial import tools 
Traceback (most recent call last): 
    File "<pyshell#30>", line 1, in <module> 
    import serial.tools 
ImportError: No module named tools 

とする場合I:

>>> serial.VERSION 
'2.5' 

なぜ私はpySerialの 'ツール' パッケージに取得することはできませんSource Forge

によると、最新バージョンでありますか?

+0

これは恥ずかしいです! dir()はサブパッケージをリストしていないので、そこにあってもそれをインポートしようとする唯一の方法はありません。良いニュースは、質問をインポートしようとすると実際にエラーが発生するので、質問はまだ有効です。 – charmoniumQ

答えて

19

pipを使用してpyserialをインストールしてください。私は同じ問題を抱えていたので、私はここに来た

sudo pip install pyserial 
+7

おそらく、あなたは私に 'sudo pip install pyserial --upgrade'を意味しました。 – charmoniumQ

+0

恐ろしく、ありがとう!私はこの答えを見る前にすべてを試しました。 –

+0

この同じことを行う方法はありますか?ウィンドウはありますか?ありがとう。 –

-1

あなたはこのようモジュールの関数を呼び出すことがあります。たとえば

from serials import tools 

:私はmathモジュールからsqrt機能を呼び出したい場合、私はどうなる:

from math import sqrt 

import math.sqrt **is wrong.** 
+0

toolsは関数ではなく、パッケージであり、Samが試しているようにインポートできます。パッケージにはモジュールと空の '__init __。py'しか含まれていないので、何かを使うためにはもっとインポートする必要がありますubuntuパッケージがアップストリームにマッチする限り例外を発生させずに成功することはありません(私の答えを参照してください) – SingleNegationElimination

+0

pyserialをインストールするためにpipを使用してください。最初にpython pipをインストールしてください:sudo apt-python-pipをインストールしてからpyserialをインストールしてください:sudo pip pyserial – user1881957

1

それがどのように見えますubuntuパッケージはアップストリームとはまったくマッチしません。彼らのSVNの公式pySerialパッケージを比較:

http://pyserial.svn.sourceforge.net/viewvc/pyserial/trunk/pyserial/serial/

ランチパッドでのUbuntuのパッケージに:

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/raring/pyserial/raring/files/head:/serial/

ツールあまりにも、そこに欠けています。彼らはminiterm.pyのスクリプトを保存しているように見え、それをどこかにインストールします。私はどこで、理解するためにdebの包装に十分な精通していない。

+0

ubuntu repoバージョンをアンインストールして、代わりに上流のsourceforgeをインストールする方法について少し詳しく説明できますか?バージョン? – charmoniumQ

1

:それはインストールpyserial

sudo apt-get install python-pip 

:最初のピップをインストールします。 奇妙なことが

import serial 

が働いていたということでしたが、

from serial.tools import list_ports 

はしませんでした。

スクリプト "serial.py"という名前のstupid meが表示されます。名前を変更した後、すべてが機能しました。その後、

0

はい、使用のpython-PIPがインストール,,, ,,, ,,,アップグレードシリアルのバージョンは2.7になります...それだけでやっては "--upgradeをインストールピップ" という場合には

0

をworkesあなたは/usr/lib/python2.7/dist-packagesにシリアルパッケージを持っているかどうかを調べることができます。新しいシリアルパッケージには、/usr/**local**/lib/python2.7/dist-packages/serialがインストールされています。なぜなら、何らかの理由でusr/lib/python2.7/が優先順位とモジュールを持っています。ツールはそのバージョンのpyserialには存在しません。名前を変更するかディレクトリを削除すると、問題が解決します。

1

site-packagesフォルダのpyserial-2.4-py2.7.eggが、site-packagesフォルダのserialではなく、インポートされています。一度このファイルの名前を変更して、このファイルをインポートしなくてもうまくいきました。

import serial 
serial._ _path_ _ 

シリアルのインポート先を確認するには、これを簡単にデバッグできます。

関連する問題