从 PyPI 安装软件包时出现问题:未安装根文件

Posted

技术标签:

【中文标题】从 PyPI 安装软件包时出现问题:未安装根文件【英文标题】:Problems installing a package from PyPI: root files not installed 【发布时间】:2011-02-27 03:27:28 【问题描述】:

通过easy_install BitTorrent-bencodepip install BitTorrent-bencode 安装BitTorrent-bencode 包后,或者通过下载压缩包并通过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 页面也列出了“包索引所有者”。我不确定这应该是什么意思,但我确实设法与那个人取得了联系,我认为他可能无法维护该模块。无论如何,它仍然处于与我在 6 月份发布此问题时相同的状态。

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

【问题讨论】:

【参考方案1】:

这个包的 setup.py 似乎坏了——它没有定义正确的分发包。我认为,您需要在源代码版本中检查 setup.py,如果它是真的 - 向这个包的作者报告错误。

【讨论】:

酷...但是我应该寻找什么? setup.py 中唯一看起来不像元数据或不相关配置的行是 packages = find_packages()。这正常吗?抱歉,我真的对此一无所知,学习 python 打包是我暂时不打算做的事情。无论如何,我已将 setup.py 粘贴到 gist.github.com/424729 以节省人们下载/解压缩的麻烦打包检查一下。

以上是关于从 PyPI 安装软件包时出现问题:未安装根文件的主要内容,如果未能解决你的问题,请参考以下文章

cobbler PXE 安装系统时出现的问题

安装Python环境之“安装 setuptools ”时出现的问题以及解决办法

解析程序包时出现问题怎么办

安装.Net Framework 4.8 时出现未安装成功

安装Loadrunner的时候出现这样,怎么解决

尝试在 OS X El Capitan 上安装 PyCrypto 时出现致命错误