gpt4 book ai didi

python - 如何在 python 脚本中启动和运行 virtualenv?

转载 作者:太空宇宙 更新时间:2023-11-03 19:46:59 29 4
gpt4 key购买 nike

我正在尝试创建一个虚拟环境,启动它,然后在虚拟环境中执行此后的每个命令。

    1. os.system("curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py")
2. os.system("python3 get-pip.py")
3. os.system("mkdir Apps")
4. os.system("pip3 install virtualenv")
5. os.system("virtualenv virt")
6. os.system("source virt/bin/activate")
7. os.system("pip3 install flask")

这是我现在拥有的代码,我正在尝试在第 (5) 行创建虚拟环境,然后尝试在第 (6) 行激活它,然后在虚拟环境上执行第 7 行(安装 Flask) 。

我也尝试过os.system('. virt/bin/activate')但每次我运行 python 文件时,它都会执行,除了启动虚拟环境之外,它会执行所有操作。

我正在 Mac 的终端上运行它。

最佳答案

虚拟环境很可能仅在 os.system() 调用期间处于事件状态。在许多情况下,不需要激活虚拟环境,只需找到其 bin 目录并运行其中找到的二进制文件即可。

类似的事情:

  • os.system('/path/to/venv/bin/python -m pip install Flask')
  • os.system('/path/to/venv/bin/pip installflask')

对于不同的方法:

#!/usr/bin/env python3

import pathlib
import subprocess
import venv

class _EnvBuilder(venv.EnvBuilder):

def __init__(self, *args, **kwargs):
self.context = None
super().__init__(*args, **kwargs)

def post_setup(self, context):
self.context = context

def _venv_create(venv_path):
venv_builder = _EnvBuilder(with_pip=True)
venv_builder.create(venv_path)
return venv_builder.context

def _run_python_in_venv(venv_context, command):
command = [venv_context.env_exe] + command
print(command)
return subprocess.check_call(command)

def _run_bin_in_venv(venv_context, command):
command[0] = str(pathlib.Path(venv_context.bin_path).joinpath(command[0]))
print(command)
return subprocess.check_call(command)

def _main():
venv_path = pathlib.Path.cwd().joinpath('virt')
venv_context = _venv_create(venv_path)
_run_python_in_venv(venv_context, ['-m', 'pip', 'install', '-U', 'pip'])
_run_bin_in_venv(venv_context, ['pip', 'install', 'attrs'])

if __name__ == '__main__':
_main()

关于python - 如何在 python 脚本中启动和运行 virtualenv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60066755/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com