инициализация virtualenvwrapper на Mac (10.6.8) для Django

Я хочу использовать Django и создавать виртуальные среды. Я не совсем понимаю документацию по инициализации на веб-сайте virtualenvwrapper. Я установил virtualenvwrapper в /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages. Я уже установил XCode, Homebrew и Posgres.

Документация говорит мне:

$ export WORKON_HOME = ~ / Envs

$ mkdir -p $ WORKON_HOME

$ источник /usr/local/bin/virtualenvwrapper.sh

$ mkvirtualenv env1`

Меня особенно смущает первая строка. Это говорит мне, что мне нужно создать папку проекта с именем WORKON_HOME и экспортировать ее в другую папку с именем Envs? (Я искал обе папки на своем Mac, но не нашел их). И затем во второй строке я делаю еще один каталог WORKON_HOME? Если у вас есть предложения или ссылки на лучшие объяснения / руководства, я был бы очень признателен. Спасибо.


person user1552159    schedule 06.11.2012    source источник


Ответы (1)


Поместите эти 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
comment
Спасибо, Кэлвин. Я пробовал следовать вашим указаниям, но мой терминал дал мне следующую ошибку: 'code' Traceback (последний вызов последний): файл ‹string›, строка 1, в ‹module› ImportError: нет модуля с именем virtualenvwrapper.hook_loader.'code 'Do вы знаете, что может происходить? - person user1552159; 09.11.2012
comment
Кстати, как вы установили свой virtualenvwrapper? sudo pip install virtualenvwrapper? - person Calvin Cheng; 09.11.2012
comment
Я подозреваю, что ваша python версия может по-прежнему быть версией, поставляемой яблоком по умолчанию python, то есть python 2.7.1. Сначала вы должны попытаться установить python 2.7.3, что можно сделать через macports с sudo port install python2.7, а затем выбрать этот новый python 2.7.3 по умолчанию с sudo port select --set python python27, а затем правильно установить PATH. Аналогичная настройка здесь - stackoverflow.com/questions/11507186/ - person Calvin Cheng; 09.11.2012