【发布时间】:2019-07-08 13:45:30
【问题描述】:
我想从命令行运行一个 python 脚本,但我想消除首先激活虚拟环境的需要。如果可能的话,我还想消除在脚本之前调用 python 的需要。我在某处看到将#!/usr/bin/env python 添加到脚本开头会起作用,但我无法这样做。
【问题讨论】:
-
“我做不到”是什么意思?
标签: python bash command-line-interface
我想从命令行运行一个 python 脚本,但我想消除首先激活虚拟环境的需要。如果可能的话,我还想消除在脚本之前调用 python 的需要。我在某处看到将#!/usr/bin/env python 添加到脚本开头会起作用,但我无法这样做。
【问题讨论】:
标签: python bash command-line-interface
使用chmod +x script.py 使您的脚本可执行。 #!shebang 选择一个解释器。
您可以像这样从 shell 调用可执行文件:
/path/to/script.py
或者:
cd /path/to; ./script.py
或者,您可以将脚本放在$PATH 定义的目录之一中,这样您就可以像调用任何其他实用程序一样调用它。
【讨论】:
假设您的 home 文件夹中有这样的结构
home
- <user_name>
-- project_name
--- env
--- main.py
env 是您的虚拟环境,您可以像这样使用 shebang:
#!env/bin/python
在 main.py 文件的开头。然后你应该让你的文件可执行:
chmod +x main.py
现在,如果您运行代码(来自 project_name 文件夹):
./main.py
main.py中包含的代码将被执行。
如果您希望能够从其他位置运行 main.py,则应在 shebang 中使用绝对路径,例如:
#!/absolute/path/to/bin/python
所以它会是这样的:
#!/home/<user_name>/project_name/env/bin/python
【讨论】: