python setup.py install 更改脚本解释器

发布于 2024-10-09 01:54:14 字数 742 浏览 4 评论 0原文

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

每个脚本都在顶部 更改为::

#!/usr/bin/python

。但是,当我运行 python setup.py install 时,此行会在已安装的脚本中自动 。有办法避免这种情况吗?这对我来说是一个问题,因为我使用的是 virtualenv,所以 Python 可执行文件的正确路径应该是::

#/Users/user/.virtualenvs/default/bin/python

所以我宁愿将解释器设置为::

#!/usr/bin/env python

感谢您的任何建议!

I have a Python package that includes a few scripts in a scripts/ folder. My setup.py file includes::

#!/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]
     )

Each script contains the line::

#!/usr/bin/env python

at the top. However, when I run python setup.py install this line gets changed to::

#!/usr/bin/python

automatically in the installed scripts. Is there a way to avoid this? The reason that this is a problem for me is because I am using virtualenv, and so the correct path for the Python executable should be::

#/Users/user/.virtualenvs/default/bin/python

so I'd rather it left the interpreter set to::

#!/usr/bin/env python

Thanks for any advice!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

往事随风而去 2024-10-16 01:54:14

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

来自文档:

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

The install scripts checks, where the python is installed and changes this python to the proper one. It does it on every machine, where your package is installed.

From docs:

Scripts are files containing Python
source code, intended to be started
from the command line. Scripts don’t
require Distutils to do anything very
complicated. The only clever feature
is that if the first line of the
script starts with #! and contains the
word “python”, the Distutils will
adjust the first line to refer to the
current interpreter location. By
default, it is replaced with the
current interpreter location. The
--executable (or -e) option will allow the interpreter path to be
explicitly overridden.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文