Importing BitTorrent bencode module
我在Mac OS X 10.6上。 Python是2.6.1。
我安装了bencode模块
sudo easy_install BitTorrent-bencode
它出现在网站包中
/Library/Python/2.6/site-packages/BitTorrent_bencode-5.0.8-py2.6.egg
但是,如何导入和使用此模块?
1 | >>> import bencode |
不起作用......
1 2 3 | 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.framework/Versions/2.6/Extras/lib/python/PyObjC', '/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode']BLOCKQUOTE>
BLOCKQUOTE>谢谢
BitTorrent_bencode-5.0.8-py2.4.egg坏了。如果您使用解压缩查看鸡蛋的内容,您将看到:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $ 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并替换说明的行:
1 packages = find_packages(),有:
1 packages = ['','test'],然后,运行
python setup.py install 将正确安装包。
您也可以使用
bzrlib.bencode 包。这将与easy_install 或pip 一起安装。
根据我的看法,pypi上的BitTorrent_bencode-5.0.8-py2.4.egg不包含bencode.py。
我会下载源代码并手动将bencode.py和BTL.py复制到您的site-packages文件夹中。
这样做的方法是将.egg添加到
sys.path 。最简单的方法是将.pth文件放入包含egg文件名的site-packages/ 中:
BitTorrent_bencode.pth :
1 BitTorrent_bencode-5.0.8-py2.6.egg如果此时仍未正确导入,则可能是模块或包名称错误。打开.egg文件,打开.zip文件并检查提示的内部结构。