我想编写一个执行 3 件事的 python 脚本:

  • 用python3搭建虚拟环境
  • 激活这个新的虚拟环境。 ( bash: 源 myvirtenv/bin/acticate)
  • 使用 requirements.txt 安装包(bash: pip install -r )

  • 在我的项目中,我使用普通的虚拟环境包。我必须在 Debian 机器上进行。

    我试图用 os.system() 模仿 bash 命令,但没有用下面的代码做到这一点。
    import os
    os.system('python3 -m venv test6_env')
    os.system('source test6_env/bin/activate')
    os.system('pip install -r requirements.txt --user')
    

    问题 virtualenv 无法激活且未安装要求。

    是否有一个简单的技巧可以很好地在 python 中编写这 3 个步骤?

    最佳答案

    问题是 os.system('source test6_env/bin/activate') 只为这个特定的 os.system() 调用产生的子 shell 激活虚拟环境,而不是任何后续的。相反,只需一次调用即可运行所有 shell 命令,例如

    os.system('python3 -m venv test6_env && . test6_env/bin/activate && pip install -r requirements.txt')
    

    或者,将您的命令放在 shell 脚本中并使用 os.system() 执行,或者更好的是,使用 subprocess 模块中的函数,例如
    import subprocess
    subprocess.run('/path/to/script.sh', check=True)
    

    关于Python:如何编写虚拟环境构建和激活脚本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53151899/

    10-09 02:02