导入BitTorrent bencode模块

时间:2010-04-22 19:50:58

标签: python macos egg

我使用的是Mac OS X 10.6。 Python是2.6.1。 我已将bencode模块安装为

  

sudo easy_install BitTorrent-bencode

它出现在site-packages

  

/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 / Pepy / 2.6 / site-package','/ System / Library / Frameworks / Python.framework / Versions / 2.6 / lib / python26.zip','/ System / Library / Frameworks / Cluster.framework / Version / 6.6 / lib / python2.6','/ System / Library / Frame /Python.framework /版本/ 2.6 / lib / python2.6 / plat-darwin','/ System / Library / Frameworks / Python.framework / Version / 6.6 / lib / python2.6 / plat-mac','/ System / Library / Frameworks / Python.framework / Versions / 2.6 / lib / python2.6 / plat-mac / lib-scriptpackages','/ System / Library / Frame /Python.framework / Version / 6.6 / Extras / lib / python','/ System / Library / Frameworks / Python.framework / Versions / 2.6 / lib / python2.6 / lib-tk','/ System / Library / Frameworks / Pepy.framework / Version / 6.6 / lib / python2.6 / lib -old', '/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload','/ System / Library / Frame /Python.framework / Version / 6.6 / Extras / lib / python / PyybjC ','/ System/Library/Frameworks/Python.framework/Version S / 2.6 /附加/ LIB /蟒/ WX-2.8-MAC-的unicode']

    
  

由于

5 个答案:

答案 0 :(得分:2)

BitTorrent_bencode-5.0.8-py2.4.egg坏了。如果您使用解压缩查看鸡蛋的内容,您将看到:

$ 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(),

with:

     packages = ['','test'],

然后,运行python setup.py install将正确安装软件包。

答案 1 :(得分:1)

从我看来,pypi上的BitTorrent_bencode-5.0.8-py2.4.egg不包含bencode.py。
我会下载sources并手动将bencode.py和BTL.py复制到您的site-packages文件夹中。

答案 2 :(得分:1)

您也可以使用bzrlib.bencode包。这将与easy_installpip一起安装。

答案 3 :(得分:0)

这样做的方法是将.egg添加到sys.path 的最简单方法是将.pth文件放入包含鸡蛋文件名的site-packages/

BitTorrent_bencode.pth

BitTorrent_bencode-5.0.8-py2.6.egg

如果此时仍无法正确导入,则可能是模块或包名称错误。打开.egg文件,打开.zip文件,检查提示的内部结构。

答案 4 :(得分:0)

使用 pip install bencode.py

而不是 pip install bencode