【发布时间】:2016-02-23 21:01:12
【问题描述】:
我创建了一个私人包,一切都很好。 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之外,所有东西都在工作
谢谢。
【问题讨论】:
标签: python pip python-wheel