将这 3 行放在您的 ~/.bash_profile 文件中:-
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/work
source `which virtualenvwrapper.sh`
$HOME 环境变量指向您用户的家。也称为 tilda "~",即/Users/your_osx_username/。
WORKON_HOME 是您通过在~/.bash_profile 文件中使用export 调用分配的新环境变量。这是保存所有新创建的 virtualenv 目录的地方。
PROJECT_HOME 是您通常手动放置所有自定义项目目录的位置。与您的 virtualenvs 无关,只是一个简单的参考点,供您使用 cd $PROJECT_HOME 语法。
which virtualenvwrapper.sh 指向 bash 脚本 virtualenvwrapper.sh 所在的位置,因此当您获取它时,该 bash 脚本中的函数可用于您的 mkvirtualenv 调用。
每当您打开“新 shell”(新选项卡,第一次更新 ~/.bash_profile 文件后关闭当前选项卡)时,所有这些环境变量和 bash 函数都将在您的 shell 中可用。
当我们使用mkvirtualenv -p python2.7 --distribute my_new_virtualenv_1 创建一个新的virtualenv 时,实际发生的是一个名为my_new_virtualenv_1 的新目录正在创建,其中包含指向您的全局python2.7 的符号链接,并创建了新的python site-packages 子目录在您的~/.virtualenvs/ 目录中。参考:-
calvin$ mkvirtualenv -p python2.7 --distribute my_new_virtualenv_1
Running virtualenv with interpreter /opt/local/bin/python2.7
New python executable in my_new_virtualenv_1/bin/python
Installing distribute..........................................................................................................................................................................................................done.
Installing pip................done.
virtualenvwrapper.user_scripts creating /Users/calvin/.virtualenvs/my_new_virtualenv_1/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/calvin/.virtualenvs/my_new_virtualenv_1/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/calvin/.virtualenvs/my_new_virtualenv_1/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/calvin/.virtualenvs/my_new_virtualenv_1/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/calvin/.virtualenvs/my_new_virtualenv_1/bin/get_env_details
如果你这样做了
cd ~/.virtualenvs/my_new_virtualenv_1
calvin$ tree -d
.
├── bin
├── include
│ └── python2.7 -> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
└── lib
└── python2.7
├── config -> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
├── distutils
├── encodings -> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings
├── lib-dynload -> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
└── site-packages
├── distribute-0.6.28-py2.7.egg
│ ├── EGG-INFO
│ └── setuptools
│ ├── command
│ └── tests
├── pip-1.2.1-py2.7.egg
│ ├── EGG-INFO
│ └── pip
│ ├── commands
│ └── vcs
└── readline
你会在里面看到这个目录结构。
当然请注意,您使用的是Envs,而我使用的是.virtualenvs 作为虚拟环境保存目录。