从PyPI安装包的问题:未安装根文件

时间:2010-06-03 04:22:35

标签: python easy-install pip pypi

通过easy_install BitTorrent-bencodepip install BitTorrent-bencode安装BitTorrent-bencode软件包,或下载tarball并通过easy_install $tarball进行安装后,我发现/usr/local/lib/python2.6/dist-packages/BitTorrent_bencode-5.0.8-py2.6.egg/包含EGG-INFO/test/目录。虽然这两个子目录都包含文件,但BitTorr*目录中没有文件。 tarball确实包含bencode.py,它本身就是这个包的实际来源,但它们并没有被这些工具包安装。

我对所有这些都很陌生,所以我不确定这是包装的问题还是我正在做的事情。该软件包是在不久前(2007年)打包的,所以可能它正在使用一些我不需要提供命令行标志的弃用配置方面。

我更感兴趣的是学习包或程序的错误,而不是安装这个特定的包;还有另一个名为hunnyb的软件包似乎可以很好地解码已编码的数据。大多数情况下,我想知道如何在其他包中处理这些问题。我还想让软件包维护者知道软件包是否需要更新。

修改

@Andrey Popp解释说setup.py文件可能存在问题。我想我能真正得到答案的唯一方法就是实际使用R-ing TFM。但是,由于我可能暂时没有时间彻底完成,我已经发布了setup.py文件here

快速浏览the easy_install manual显示,该模块的setup.py使用的函数find_modules()搜索包中名为__init__.py的文件。有问题的源代码文件名为bencode.py,因此可能是问题所在:它应该命名为__init__.py

编辑2

现在已经学习了Python打包,我认为问题是这个模块正在使用setuptools.find_packages,并且其源代码位于其目录结构的根目录,但是没有传递package_dir中的任何内容。 。修复它似乎相当简单。但是,他的PyPI联系信息无法访问作者。模块的PyPI页面也列出了“包索引所有者”。我不确定这是什么意思,但我确实设法与那个人联系,我认为他可能无法维护模块。在任何情况下,它仍然处于与我在六月发布此问题时相同的状态。

鉴于该模块似乎或多或少被放弃了,并且在hunnyb中有一个合适的替代品,我已经接受了@andreypopp的答案与我要去的一样好。得到。

1 个答案:

答案 0 :(得分:1)

这个软件包的setup.py似乎已经破了 - 它没有定义正确的软件包以便分发。我想,您需要检查源代码版本中的setup.py,如果确实如此 - 向该软件包的作者报告错误。