我已经创建了一个私有包,而且所有东西都很好。 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
感谢。
答案 0 :(得分:0)
问题出在包含setup.py的文件夹名称中。我通过检查pip
找到了它,并找到了关键检查,它将过程指向遗留方法。如果您对此感兴趣,请参阅以下链接。