2

Mac OS X 10.6 を使用しています。Python は 2.6.1 です。bencodeモジュールを次のようにインストールしました

sudo easy_install BitTorrent ベンコード

サイトパッケージに登場

/Library/Python/2.6/site-packages/BitTorrent_bencode-5.0.8-py2.6.egg

しかし、このモジュールをインポートして使用する方法は?

>>> import bencode

動作しません...

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named bencode

サイトパッケージからモジュールをインポートする方法は? BitTorrent_bencode-5.0.8-py2.6.egg に含まれるモジュール名を認識する方法は?

sys.path [''、'/Library/Python/2.6/site-packages/BitTorrent_bencode-5.0.8-py2.6.egg'、'/Library/Python/2.6/site-packages'、'/System/Library /Frameworks/Python.framework/Versions/2.6/lib/python26.zip', '/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6', '/System/Library/Frameworks/Python .framework/Versions/2.6/lib/python2.6/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac', '/System/Library /Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python', ' /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload', '/System/Library/Frameworks/Python.フレームワーク/バージョン/2.6/Extras/lib/python/PyObjC', '/システム/ライブラリ/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode']

ありがとう

4

5 に答える 5

2

BitTorrent_bencode-5.0.8-py2.4.egg が壊れています。unzip を使用して卵の内容を確認すると、次のように表示されます。

$ unzip BitTorrent_bencode-5.0.8-py2.6.egg                                                                                                                                                                                                                         
Archive:  BitTorrent_bencode-5.0.8-py2.6.egg
  inflating: EGG-INFO/dependency_links.txt  
  inflating: EGG-INFO/PKG-INFO       
  inflating: EGG-INFO/SOURCES.txt    
  inflating: EGG-INFO/top_level.txt  
  inflating: EGG-INFO/zip-safe       
  inflating: test/__init__.py        
  inflating: test/__init__.pyc       
  inflating: test/benchmarkbencode.py  
  inflating: test/benchmarkbencode.pyc  
  inflating: test/benchmarkdata.py   
  inflating: test/benchmarkdata.pyc  
  inflating: test/testbencode.py     
  inflating: test/testbencode.pyc    

bencode.py と BTL.py が含まれていないことに注意してください。パッケージのソース配布をpypiからダウンロードすると、不足しているファイルを取得できます。パッケージの問題は、setup.py のディストリビューションのルート ディレクトリが、卵を作成するパッケージのリストに含まれていないことです。これを修正するには、setup.py を編集して次の行を置き換えます。

     packages = find_packages(),

と:

     packages = ['','test'],

次に、実行python setup.py installすると、パッケージが正しくインストールされます。

于 2010-04-22T20:50:46.423 に答える
1

私が見たところ、pypi の BitTorrent_bencode-5.0.8-py2.4.egg には bencode.py が含まれていません。ソース
をダウンロードして、手動で bencode.py と BTL.py を site-packages フォルダーにコピーします。

于 2010-04-22T20:02:23.627 に答える
1

bzrlib.bencode代わりにパッケージを使用することもできます。easy_installこれはまたはでインストールされますpip

于 2010-10-03T15:49:56.717 に答える
0

その方法は、.egg を に追加することsys.pathです。これを行う最も簡単な方法は、卵のファイル名を含む.pth ファイルをドロップすることですsite-packages/

BitTorrent_bencode.pth:

BitTorrent_bencode-5.0.8-py2.6.egg

この時点でまだ正しくインポートされない場合は、モジュールまたはパッケージ名が間違っている可能性があります。.zip ファイルを開くことができる何かで .egg ファイルを開き、ヒントの内部構造を調べます。

于 2010-04-22T19:59:42.307 に答える