【发布时间】:2014-12-10 19:08:25
【问题描述】:
注意:截至 2015 年 9 月 4 日,我无法再使用当前版本的 python 和 setuptools/distutils 在 python 2 或3.
注意:我自己已经回答了这个问题,一旦系统允许我就会接受这个答案,但这似乎是唯一的英语参考互联网上的问题(根据谷歌),所以我想我会发布两个希望这可以有用。
我在安装我自己的 python 包时遇到了一个无法调试的问题。这是一个非常简单的包,具有平面结构(没有子目录),以及一些我需要在安装时复制的数据文件。为简洁起见,删除了一些内容,我有这个:
spherical_functions
├── MANIFEST.in
├── __init__.py
├── spherical_functions.py
├── ladder_operator_coefficients.npy
└── setup.py
从我的源目录安装时,我没有问题。但是当我切换到setuptools 或安装pip (分发所需)时,我得到了错误
can't copy 'ANIFEST.in': doesn't exist or not a regular file
请注意该文件名开头缺少的M。我稍微侵入了distutils,以验证它实际上是在尝试复制ANIFEST.in,而不仅仅是误报名称。不幸的是,线索到此为止,因为其余的 setuptools 代码隐藏在我不明白的一些鸡蛋中。
在没有MANIFEST.in 文件的情况下也会出现类似的问题,只使用setup 函数的package_data 选项,它会丢失数据文件的第一个字母,如
error: can't copy 'adder_operator_coefficients.npy': doesn't exist or not a regular file
【问题讨论】:
-
即使您的回答表明您找到了适合您的解决方案,我想请您针对
setuptools/distutils提交一个关于错误/错误反馈的错误错误消息(根本没有意义,并且在多个方面令人困惑),因为您已经查看了代码。如果你不想,我也可以这样做,但我必须做你已经做过的工作。你怎么看? -
我无法再使用 python 2 或 3(作为环境安装在 anaconda 中)重现此问题。根据我最初的问题,我首先尝试使用 MWE;然后我将我的回购回滚到我第一次问这个问题之前的状态。这些组合都没有给我带来问题,所以我想它已经解决了。如果你能重现错误,当然,你应该提交一个错误报告。
标签: pip setuptools distutils