【问题标题】:pip install package call setup.py install instead of setup.py bdist_wheelpip install package 调用 setup.py install 而不是 setup.py bdist_wheel
【发布时间】: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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-04-07
      • 1970-01-01
      • 2018-09-19
      • 2015-07-30
      • 2013-03-21
      • 2022-11-08
      • 2017-05-25
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多