Импорт модуля BitTorrent bencode - PullRequest
       5

Импорт модуля BitTorrent bencode

2 голосов
/ 22 апреля 2010

Я на Mac OS X 10.6. Python - это 2.6.1. Я установил модуль bencode как

sudo easy_install BitTorrent-bencode

Он появился в пакетах сайта

/ Library / Python / 2,6 / сайт-пакеты / 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. Версии / 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 / Библиотека / Каркасы / Python.framework / Версии / 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.framework/Versions/2.6/Extras/lib/python/PyObjC ',' /System/Library/Frameworks/Python.framework/Version с / 2.6 / Дополнительно / Библиотека / Python / WX-2,8-MAC-Юникода ']

Спасибо

Ответы [ 4 ]

2 голосов
/ 23 апреля 2010

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 не включает корневой каталог дистрибутива в список пакетов, из которых создан egg. Чтобы это исправить, вы можете отредактировать файл setup.py и заменить строку с текстом:

     packages = find_packages(),

с:

     packages = ['','test'],

Затем, python setup.py install правильно установит пакет.

1 голос
/ 03 октября 2010

Вы также можете использовать пакет bzrlib.bencode. Это устанавливается с easy_install или pip.

1 голос
/ 23 апреля 2010

Из того, что я вижу, BitTorrent_bencode-5.0.8-py2.4.egg на pypi не содержит bencode.py.
Я хотел бы загрузить sources и вручную скопировать bencode.py и BTL.py в папку вашего сайта-пакетов.

0 голосов
/ 22 апреля 2010

Способ сделать это - добавить .egg к sys.path. Самый простой способ сделать , что , - перетащить файл .pth в site-packages/, содержащий имя файла яйца:

BitTorrent_bencode.pth

BitTorrent_bencode-5.0.8-py2.6.egg

Если на этом этапе он все еще не импортируется должным образом, возможно, вы неправильно указали имя модуля или пакета. Откройте файл .egg в чем-то, что может открыть файлы .zip и проверить подсказки во внутренней структуре.

...