Использование pip3
для установки пакета в a virtualenv
приводит к тому, что пакет устанавливается в глобальную папку site-packages, а не в папку virtualenv. Вот как я настроил Python3 и virtualenv на OS X Mavericks (10.9.1):
Я установил Python3 с помощью Homebrew:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
brew install python3 --with-brewed-openssl
Изменена $PATH
переменная в .bash_profile
; добавил следующую строку:
export PATH=/usr/local/bin:$PATH
Запуск which python3
возвращается /usr/local/bin/python3
(после перезапуска оболочки).
Примечание: which python3
все равно возвращается / usr/bin/python
хотя.
Устанавливается virtualenv
с использованием pip3
:
pip3 install virtualenv
Далее создайте новый virtualenv
и активируйте его:
virtualenv testpy3 -p python3
cd testpy3
source bin/activate
Примечание: если я не укажу -p python3, pip будет отсутствовать в папке bin в файле virtualenv.
Запускаем which pip
и which pip3
оба возвращаем папку virtualenv:
/Users/kristof/VirtualEnvs/testpy3/bin/pip3
Теперь, когда я пытаюсь установить, например, Markdown, используя pip в активированном virtualenv, pip будет устанавливаться в глобальной папке site-packages вместо папки site-packages в virtualenv.
pip install markdown
Бег pip list
возвращается:
Markdown (2.3.1)
pip (1.4.1)
setuptools (2.0.1)
virtualenv (1.11)
Состав /Users/kristof/VirtualEnvs/testpy3/lib/python3.3/site-packages
:
__pycache__/
_markerlib/
easy_install.py
pip/
pip-1.5.dist-info/
pkg_resources.py
setuptools/
setuptools-2.0.2.dist-info/
Состав /usr/local/lib/python3.3/site-packages
:
Markdown-2.3.1-py3.3.egg-info/
__pycache__/
easy-install.pth
markdown/
pip-1.4.1-py3.3.egg/
setuptools-2.0.1-py3.3.egg
setuptools.pth
virtualenv-1.11-py3.3.egg-info/
virtualenv.py
virtualenv_support/
Как видите, папка global site-packages содержит Markdown, а папка virtualenv - нет.
Примечание. У меня ранее были установлены Python2 и Python3 на другой виртуальной машине (следовал этим инструкциям), и у меня была такая же проблема с Python3; Однако установка пакетов в virtualenv на базе Python2 работала безупречно.
Любые советы, подсказки,… были бы очень признательны.
pip3
?). Это может быть неплохо само по себе, но вы должны знать, если это так.