2015-11-20 2 views
5

Как мы все знаем, Mac OS поставляется с собственным предустановленным python.Несколько установок python и pip, чувак, где мои сайты-пакеты?

Рекомендация заключается в том, чтобы оставить это в покое и использовать доморощенный, чтобы установить новый питон в систему.

Моя проблема заключается в том, что после установки python (и pip) с использованием homebrew pip устанавливает пакеты в пакеты сайтов Mac OS вместо своих собственных. Я подтвердил, я бегу «доморощенного» пип:

$ which pip 
/usr/local/bin/pip 

Но тогда, когда я пип установить что-то, что я могу С.Е. он установлен на:

/lib/python2.7/site-packages 

Пип следует устанавливать на /usr/local/lib/python2.7/site-packages, если я не» m пропустить понимание чего-то.

Удивительно то, что проверка с -V дает удивительный результат:

pip -V 
pip 7.1.0 from /usr/local/lib/python2.7/site-packages (python 2.7) 

Бег pip list только после запуска pip install не показывает пакеты, которые были якобы только установленные ею, но пошли к неправильному сайт-пакетов ,

Добавление к этому пакетов, установленных на /lib/python2.7/site-packages, не распознаются моим $ PYTHONPATH, и поэтому я не могу их использовать.

Чтобы добавить еще больше путаницы, я решил использовать virtualenv, но я был поражен тем, что даже используя pip с активным virtualenv, он постоянно устанавливал на /lib/python2.7/site-packages вместо виртуальных сайтов-пакетов.

Итак, как-то я закончил с домашним пипсом, который устанавливает пакеты за пределами сайтов homebrew-сайтов и интерпретатор python, которые не могут использовать пакеты, установленные в pip.

Как вы можете посоветовать мне найти основную причину и иметь гладкий опыт python? :)

+0

Вы '. venv/bin/активировать ваш vitualenv? – Ray

ответ

0

Я думаю, что после активации virtualenv ваш путь к python должен указывать на расположение сайта-места в окружении - если не он, вероятно, не активирован. Только после того, как вы активируете его, вы запустите pip, чтобы он устанавливался в пакетах виртуальных env. если он не активирован, он будет идти в любых других сайтов-пакетов, которые она уже знает:

  • Шаг 1: создать виртуальный окр
    • ла ... virtualenv venv
    • ли это только один раз !
  • Шаг 2: Активируйте Vitual окр
    • что-то вроде source /venv/bin/activate
    • нужно делать каждый раз, когда вы хотите использовать эту виртуальную среду
  • Шаг 3: команды запуска пип, смотреть их установить в виртуальные env-пакеты!

Если вы делаете шаг 3 перед шагом 2, вы фактически не используете созданную виртуальную среду, поэтому все ставки отключены. Вероятно, причина в том, что пип все еще устанавливается в прежнее место.

Теперь моя общая рекомендация - пойти дальше и использовать pyenv для установки конкретной версии python в ваш /Users/username/.pyenv folder и отказаться от стандартных пакетов OSX и homebrew. Это просто, и вы можете легко управлять точной версией python, используя простой выпуск команды для изменения версий.

ТОГДА использование virtualenv в python2 или pyvenv если в Python3 (не следует путать с pyenv) для создания Vitual среды со своими местными сайта-пакеты для хранения пипсов модулей. Когда вы активируете virtualenv, ваш $ PYTHONPATH переключится на определенное место.

поток будет затем:

  • Используйте pyenv тянуть вниз и перейти к конкретной версии питона вы хотите использовать - переопределяя доморощенный и версии OSX.
  • Создайте свой vitrualenv. Это создаст корзину, которая будет ссылаться на стек pyenv python, который вы указали только на предыдущем шаге.
  • Активируйте виртуальный env и продолжайте.

Полностью контролировать окружающую среду!

Смежные вопросы