virtualenv 添加独立的 PYTHON_PATH

在一个python项目中可能会碰到需要添加额外PYTHON_PATH的时候,而又不想污染系统的环境变量。这时候就需要用到 virtualenvwrapperadd2virtualenv 命令。

首先假设已有一个环境 foo(如果没用,使用 mkvirtualenv foo 来创建)。然后用 workon foo 来启用环境。

接下来就是要添加独立 PYTHON_PATH 了,需要用到 add2virtualenv 命令:

add2virtualenv . # 添加当前路径
add2virtualenv ~/foo/bar/src 

cdsitepackages 进入到 virtualenv 环境的 site-packages 目录,能找到一个 _virtualenv_path_extensions.pth 文件,打开后会看到:

import sys; sys.__plen = len(sys.path)
/the/path/1
/the/path/2
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)

既然是一个文件,那也就可以直接编辑来增删改这些路径。当然,也可以通过 add2virtualenv -d 来删除某个路径。