virtualenv 和 VIRTUAL_ENV 关键字

nam*_*nam 4 python virtualenv

在安装了一个新的 virtualenv 之后,例如称为 ENV,如果我输入

. /path/to/ENV/bin/activate

python
import os
print os.environ['VIRTUAL_ENV']
Run Code Online (Sandbox Code Playgroud)

然后我看到 /path/to/ENV/

但是,如果我输入

/path/to/ENV/bin/python
Run Code Online (Sandbox Code Playgroud)

进而

import os
print os.environ['VIRTUAL_ENV']
Run Code Online (Sandbox Code Playgroud)

我有一个关键错误 那么这两种方法之间的根本区别是什么?谢谢,

gir*_*uid 7

在脚本中bin/activate,有一行看起来像这样:

VIRTUAL_ENV="/Users/me/.envs/myenv"
export VIRTUAL_ENV
Run Code Online (Sandbox Code Playgroud)

这是负责设置VIRTUAL_ENV环境变量的内容。当您不使用 activate 时,该变量永远不会被导出 - 因此它不存在于os.environ.