virtualenv 和 VIRTUAL_ENV 关键字

10 投票
1 回答
9008 浏览
提问于 2025-04-17 14:59

在安装了一个新的虚拟环境,比如叫做 ENV 之后,如果我输入

. /path/to/ENV/bin/activate

python
import os
print os.environ['VIRTUAL_ENV']

那么我会看到 /path/to/ENV/

但是,如果我输入

/path/to/ENV/bin/python

然后再输入

import os
print os.environ['VIRTUAL_ENV']

我就遇到了一个键错误(key error)。那么这两种方法之间的根本区别是什么呢?谢谢!

1 个回答

13

bin/activate 这个脚本里,有一行代码是这样的:

VIRTUAL_ENV="/Users/me/.envs/myenv"
export VIRTUAL_ENV

这行代码的作用是设置你的 VIRTUAL_ENV 环境变量。当你不使用激活命令时,这个变量就不会被导出,所以在 os.environ 中是找不到的。

撰写回答