从 python 脚本激活虚拟环境

汗阿斯菲礼萨

我正在尝试创建一个 python 脚本来自动化我的一些个人内容。在脚本中,我首先要激活我的虚拟环境,然后执行一些其他任务(API 调用和处理它们)。但是在script.py负责激活虚拟环境的命令中不起作用。我努力了

import subprocess
subprocess.Popen(['D:/work/venv/scripts/activate'], shell=True) # Not Working
subprocess.run(['D:/work/venv/scripts/activate'], shell=True) # Not Working

但这并没有激活venv,我也尝试过,但这似乎不起作用

import os
os.system('D:/work/venv/scripts/activate') # Not Working

我也试过

activate_this = 'D:/Work/venv/scripts/activate_this.py' # Not working
with open(activate_this) as f:
    code = compile(f.read(), activate_this, 'exec')
    exec(code, dict(__file__=activate_this))

以上都没有工作在 linux/ubuntu shell 脚本中完成了工作

source venv/bin/activate

我想要类似的东西,但使用 python 脚本,它将能够在 shell/cmd 中激活虚拟环境

看起来我链接的这个答案不适用于 Python 3,但在该帖子中答案的评论中,我从@Calimo 找到了以下对我有用的内容:

activate_this_file = "/path/to/venv/bin/activate_this.py"
exec(compile(open(activate_this_file, "rb").read(), activate_this_file, 'exec'), dict(__file__=activate_this_file))

编辑:经过一些讨论,看起来真正的问题是在subprocess没有指定正确环境的情况下使用。默认情况下subprocess使用全局环境生成一个新进程。env通过在调用时提供 arg来指定所需的虚拟环境subprocess,例如在使用上面的代码激活虚拟环境后:

venv= os.environ.copy()
subprocess.check_all(["pip3", "install", "flask"], env=venv)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过Shell脚本激活python虚拟环境

用厨师激活python虚拟环境

在Windows上激活Python虚拟环境

激活python 3.6虚拟环境

如何激活Python虚拟环境并同时执行脚本?

在不激活虚拟环境的情况下运行Python脚本

激活 Python 虚拟环境并在另一个 Python 脚本中调用 Python 脚本

在Node.js中从Python激活虚拟环境

激活python虚拟环境如何修改sys.path?

阻止Visual Studio代码激活Python虚拟环境

Makefile创建和“激活” Python虚拟环境

如何从 python 脚本激活虚拟环境并在其中执行进一步的指令?

用于获取 Python 虚拟环境的 Bash 脚本

从Windows Task Scheduler在虚拟环境中运行python脚本

在Windows中激活python虚拟环境时设置环境变量

激活python虚拟环境后,输入python仍然可以在PATH中获取版本

激活python虚拟环境不会切换到pip和python命令的本地版本

pyenv-virtualenv的问题:激活/停用虚拟环境时,Python和PIP不变

如何在不激活的情况下将 python 包安装到虚拟环境中?

无法使用Python 2.7,Windows在Git Bash上创建和激活虚拟环境

为什么当我尝试激活 Python 虚拟环境时却没有?

通过bash脚本使用虚拟环境多次运行python脚本

执行在不同虚拟环境/ venv下构建的python脚本?

使用node.js pm2在虚拟环境中运行python脚本

Windows中调用python脚本时自动开启虚拟环境

在有虚拟环境和无虚拟环境的情况下都可以运行的Python 3脚本有什么用?

使用 python 获取虚拟环境

python中虚拟环境的命名规则

升级Python 3虚拟环境