pip install package调用setup.py install而不是setup.py bdist_wheel

时间:2016-02-23 21:01:12

标签: python pip python-wheel

我已经创建了一个私有包,而且所有东西都很好。 setup.py bdist_wheel只需为它创建轮子,其他命令就可以正常工作。

pip install package_xxx.whl正常工作并正确安装创建的轮子。但是当我尝试pip install来自需求文件或git repo或本地路径的包时,它很糟糕......

如您所知,pip将调用setup.py文件

在我的情况下,setup.py文件使用以下参数调用两次:(从sys.argv捕获)

['-c', 'egg_info', '--egg-base', 'pip-egg-info']
['-c', 'install', '--record', '/long/path/to/install-record.txt', '--single-version-externally-managed', '--compile']

但是例如,如果我pip install coverage覆盖包的setup.py文件中调用了两次以下内容:

['-c', 'egg_info', '--egg-base', 'pip-egg-info']
['-c', 'bdist_wheel', '-d', '/long/path/to/tmp82jyoapip-wheel-', '--python-tag', 'cp27']

我的包中第一次调用setup.py并且coverage.py包是相同的,pip获取egg-info数据。然后它会在coverage.py (所需行为)上调用setup.py bdist_wheel,但在我的包(已损坏的行为)上调用setup.py install,这会导致创建鸡蛋类似项目而不是第一轮。

我的setup.py文件位于以下要点:https://gist.github.com/wtayyeb/f26578fe6ff17dc6acd3

它与包中的其他文件相邻,正如我所说的所有内容都在工作,但pip install /path/to/mypackage

除外

感谢。

1 个答案:

答案 0 :(得分:0)

问题出在包含setup.py的文件夹名称中。我通过检查pip找到了它,并找到了关键检查,它将过程指向遗留方法。如果您对此感兴趣,请参阅以下链接。

https://stackoverflow.com/a/35590238/875667