我使用的是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']
由于
答案 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_install
或pip
一起安装。
答案 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