我试图用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
出了什么问题?
答案 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