python setup.py install 更改脚本解释器
我有一个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
谢谢大家的建议!
1 个回答
4
安装脚本会检查你的电脑上安装了哪个Python,然后把这个Python换成正确的版本。这个过程会在每一台安装了你这个包的机器上进行。
根据文档:
脚本是包含Python源代码的文件,目的是从命令行启动。脚本不需要使用Distutils来做复杂的事情。唯一聪明的地方是,如果脚本的第一行以#!开头,并且包含“python”这个词,Distutils会自动调整这一行,让它指向当前的Python解释器位置。默认情况下,这一行会被替换为当前解释器的位置。使用--executable(或-e)选项,可以明确指定解释器的路径。