【问题标题】:Pip, wheel and console_scripts点子、轮子和控制台脚本
【发布时间】:2015-01-04 23:03:40
【问题描述】:

我在使用 python whl 包时遇到了以下问题:

我有一个包,在我的 setup.py 中定义了一个入口点。 当我运行pip install . 时,它会正确安装包AND 入口点包装器。 当我运行python setup.py bdist_wheel 后跟pip install thing.whl 时,它只安装包,而不是入口点。

如何从创建的 wheel 包中正确安装入口点?

PS:当我解压 wheel 包时,我确实找到了带有预期条目的“entrypoints.txt”。它只是没有安装在环境 bin 中。

【问题讨论】:

  • 我不确定我是否遇到了问题。 pip install 方法不起作用?
  • 我试着改进一下措辞。 pip install . 有效,但这需要源代码分发。使用wheel打包并安装包不起作用,因为bin中没有安装入口点。

标签: python pip python-wheel


【解决方案1】:

Wheels 使用 将预先生成的控制台脚本包装器包含在包中,但这是次优的并且文件已被删除。安装程序应该生成这些包装脚本,但 pip 尚未更新以效仿,请参阅 issue 1067

pull request 1251 成为发行版的一部分之前,您必须使用单独的命令来安装控制台脚本:

python -m wheel install-scripts thing.whl

请参阅 Wheel 文档中的 Setuptools scripts handling

本月早些时候(2014 年 11 月)合并了拉取请求,并将成为 upcoming 6.0 release 的一部分。您还可以使用pip 将自己从 GitHub 升级到开发版本:

pip install git+https://github.com/pypa/pip.git

【讨论】:

  • 如果改为引发 pkg_resources.DistributionNotFound,您可能必须运行 python -m wheel install <pkg.whl>,然后再运行 python -m wheel install-scripts pkg,因为包本身可能需要一些东西才能使该脚本工作。
猜你喜欢
  • 1970-01-01
  • 2014-01-25
  • 2018-11-23
  • 1970-01-01
  • 2019-06-09
  • 2013-01-17
  • 2012-07-26
  • 2014-08-07
  • 2018-02-13
相关资源
最近更新 更多