Использование pip3
для установки пакета в virtualenv
приводит к тому, что пакет устанавливается в папку ackages глобального сайта -p, а не в папку 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
Теперь, когда я пытаюсь установить, например, Уценка с помощью pip в активированном virtualenv, pip будет установлена в глобальной папке сайта -p ackages вместо папки сайта -p ackages в 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/
Как видите, папка глобального сайта -p ackages содержит Markdown, а папка virtualenv - нет.
Примечание: у меня были Python2 и Python3, установленные ранее на другой виртуальной машине (следовал этим инструкциям), и у меня была та же проблема с Python3; установка пакетов в Python2 на основе virtualenv работала безупречно.
Любые советы, подсказки,... будет очень признателен.