我有一个Python包,其中包含scripts/
文件夹中的一些脚本。我的setup.py
文件包含::
#!/usr/bin/env python
from distutils.core import setup
scripts = ['script1', 'script2', 'script3']
setup(name='Test',
version='0.1.0',
packages=['test'],
scripts=['scripts/' + x for x in scripts]
)
每个脚本都包含行::
#!/usr/bin/env python
在顶部。但是,当我运行python setup.py install
时,此行会更改为::
#!/usr/bin/python
自动在已安装的脚本中。有办法避免这种情况吗?这对我来说是个问题的原因是因为我使用的是virtualenv,所以Python可执行文件的正确路径应该是::
#/Users/user/.virtualenvs/default/bin/python
所以我宁愿将解释器设置为::
#!/usr/bin/env python
感谢您的任何建议!
答案 0 :(得分:3)
安装脚本检查安装了python的位置,并将此python更改为正确的python。它是在安装软件包的每台机器上完成的。
来自docs:
脚本是包含Python的文件 源代码,打算启动 从命令行。脚本没有 要求Distutils做任何事情 复杂。唯一聪明的功能 如果是第一行的话 脚本以#开头!并包含 单词“python”,Distutils会 调整第一行参考 目前的口译员所在地。通过 默认情况下,它被替换为 目前的口译员所在地。该 --executable(或-e)选项将允许解释器路径 明确地覆盖了。