Поместите эти 3 строки в свой ~/.bash_profile
файл: -
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/work
source `which virtualenvwrapper.sh`
Переменная среды $HOME
указывает на дом вашего пользователя. Также известна как тильда "~", т.е. /Users/your_osx_username/
.
WORKON_HOME
- это новая переменная среды, которую вы назначаете с помощью вызова export
в вашем ~/.bash_profile
файле. Здесь будут храниться все ваши недавно созданные каталоги virtualenv.
PROJECT_HOME
- это то место, где вы обычно вручную размещаете все свои пользовательские каталоги проектов. Ничего общего с вашими виртуальными именами, как говорится, это просто простой ориентир для вас, чтобы использовать синтаксис cd $PROJECT_HOME
.
which virtualenvwrapper.sh
указывает на место, где находится сценарий bash virtualenvwrapper.sh
, и, следовательно, когда вы его исходите, функции этого сценария bash становятся доступными для ваших mkvirtualenv
вызовов.
Всякий раз, когда вы открываете «новую оболочку» (новую вкладку, закройте текущую вкладку после первого обновления файла ~/.bash_profile
), все эти переменные среды и функции bash, таким образом, будут доступны в вашей оболочке.
Когда мы создаем новый virtualenv с использованием mkvirtualenv -p python2.7 --distribute my_new_virtualenv_1
, на самом деле происходит то, что создается новый каталог с именем my_new_virtualenv_1
, содержащий символическую ссылку на ваш глобальный python2.7, и в вашем каталоге ~/.virtualenvs/
создаются новые подкаталоги пакетов сайтов python. Ссылка:-
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
в качестве виртуального каталога хранения env.
person
Calvin Cheng
schedule
06.11.2012