使用Python脚本激活虚拟环境

15 浏览
0 Comments

使用Python脚本激活虚拟环境

我想从一个Python脚本中激活一个虚拟环境实例。

我知道这很容易做到,但我看到的所有示例都使用它来在env内运行命令,然后关闭子进程。

我只想激活虚拟环境并返回到shell,就像bin/activate一样。

像这样的:

$me: my-script.py -d env-name
$(env-name)me:

这是可能的吗?

相关:

virtualenv › 从脚本调用一个env

admin 更改状态以发布 2023年5月24日
0
0 Comments

将脚本运行在virtualenv解释器下的最简单的解决方法是在脚本开头将默认的shebang行替换为虚拟环境解释器的路径:

#!/path/to/project/venv/bin/python

使脚本可执行:

chmod u+x script.py

运行脚本:

./script.py

大功告成!

0
0 Comments

如果你想在虚拟环境下运行Python子进程,你可以通过使用虚拟环境的/bin/目录下的Python解释器运行脚本来实现:\n\n

import subprocess
# Path to a Python interpreter that runs any Python script
# under the virtualenv /path/to/virtualenv/
python_bin = "/path/to/virtualenv/bin/python"
# Path to the script that must run under the virtualenv
script_file = "must/run/under/virtualenv/script.py"
subprocess.Popen([python_bin, script_file])

\n\n然而,如果你想在当前Python解释器下激活虚拟环境而不是子进程,你可以使用activate_this.py脚本: \n\n

# Doing execfile() on this file will alter the current interpreter's
# environment so you can import libraries in the virtualenv
activate_this_file = "/path/to/virtualenv/bin/activate_this.py"
execfile(activate_this_file, dict(__file__=activate_this_file))

0