【问题标题】:python setup.py install changes script interpreterpython setup.py install 更改脚本解释器
【发布时间】:2011-05-29 21:51:11
【问题描述】:

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

感谢您的建议!

【问题讨论】:

  • 事实证明,如果我删除build 目录并再次尝试,它会将路径更改为正确的路径,但我仍然想知道是否可以保留原始@ 987654331@.
  • Don't touch my shebang! 的可能重复项

标签: python path installation virtualenv


【解决方案1】:

安装脚本会检查 python 的安装位置并将此 python 更改为正确的。它会在安装了您的软件包的每台机器上执行此操作。

来自文档:

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

【讨论】:

    猜你喜欢
    • 2011-09-06
    • 2012-12-05
    • 2013-03-15
    • 2021-11-29
    • 1970-01-01
    • 2019-02-02
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多