从pip安装的可执行脚本使用错误的Python路径

时间:2015-07-27 19:55:45

标签: python pip setuptools

我试图用setuptools打包我的一个项目。此项目部署在" setup.py":

中配置的可执行脚本
scripts=['bin/check_mailq.py'],

" check_mailq.py"的第一行文件是:

#!/usr/bin/env python

如果我执行" setup.py install",第一行将替换为machine / virtualenv的python路径。顺便说一句,如果我使用命令打包pypi的项目:

python setup.py bdist_egg bdist_wheel upload

然后用我的生产机器中的pip安装它,python路径错误。

#!/home/kbyte/pynagmailplugins/venv/bin/python

而不是(示例):

#!/opt/production_venv/bin/python

出了什么问题?

1 个答案:

答案 0 :(得分:3)

Distutils使用你用来运行distutils的python的路径修改shebang行,所以这是预期的行为。我相信它是以这种方式设置的,以确保脚本所需的所有库依赖项都在同一个python版本中。

如果pip导致问题,可能是在不同的virtualenv /使用不同的python时安装的。

FWIW,您可以运行: python setup.py build --executable =" / usr / bin / env python"按原样手动保持shebang。

另见: Don't touch my shebang!https://github.com/hpcugent/vsc-mympirun-scoop/issues/7