我有一个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


感谢您的任何建议!

最佳答案

安装脚本检查python的安装位置,并将此python更改为正确的python。它在安装软件包的每台计算机上执行。

从文档:


  脚本是包含Python的文件
  源代码,打算开始
  从命令行。脚本不
  要求Distutils做任何事情
  复杂。唯一聪明的功能
  就是如果第一行
  脚本以#开头!并包含
  单词“ python”,Distutils将
  调整第一行以引用
  当前口译员的位置。通过
  默认情况下,它被替换为
  当前口译员的位置。的
  --executable(或-e)选项将允许解释器路径为
  明确覆盖。

关于python - python setup.py安装更改脚本解释器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4517934/

10-14 18:00
查看更多