从python脚本运行virtualenvwrapper命令

时间:2018-09-15 17:05:34

标签: python python-3.x virtualenv virtualenvwrapper

当我尝试使用mkvirtualenv(virtualenvwrapper命令)和os.system这样创建新的Python 3虚拟环境时

import os
os.system('mkvirtualenv foo')

什么都没有发生。

os.system("mate-terminal -e 'workon foo'")

也不起作用。

关键是要快速创建一个新的虚拟环境并在以后为每个项目对其进行处理(这是一个自动化脚本)。 virtualenvwrapper是最方便的选择。

2 个答案:

答案 0 :(得分:1)

mkvirtualenvworkon命令是shell函数,而不是PATH [0]中的可执行文件。  为了使它们在执行它们的外壳中可用,您需要提供virtualenvwrapper.sh外壳脚本来定义它们。您最好直接致电virtualenv /path/to/foo

但是,如何激活virtualenv则是另一回事,并且取决于要在其中使用它的上下文。如果在子进程中激活它,则使用它的每个进程都必须在该子进程中或该子进程下运行。

Hth, dtk

PS另外,您可能会研究subprocess模块(甚至是第三方sh)来调用外部程序。编码愉快:)

[0]:请参见终端机中的$ which workon$ which bash

答案 1 :(得分:0)

bash shell脚本中的以下代码

env_name="<your env name>"
echo "Create virtual environment"
source `which virtualenvwrapper.sh`
mkvirtualenv $env_name -p python<$version>
source $HOME/.virtualenvs/$env_name/bin/activate
workon $env_name

然后从终端test.sh运行bash脚本(例如:source test.sh