2015-08-14 3 views
4

Несколько вопросов новичка о сосуществовании Homebrew и pyenv на MacOSX Йосемити. Это то, о чем я все еще смущаюсь после применения моего уровня google-fu к теме. Извините за длину, но я хотел быть максимально ясным.Сосуществование Homebrew и pyenv на MacOSX Yosemite

Во-первых, некоторые фон. Я использовал пиво для установки pyenv, а затем pyenv для установки python2 и python3.

brew install pyenv 
brew install pyenv-virtualenv 
*I also added the necessary hooks into my profiles.* 
pyenv install 2.7.10 
pyenv install 3.4.3 
pyenv rehash 
pyenv global 2.7.10 

??? Вопрос (или разъяснение). Если пиво использует питон, установленный pyenv, я предполагаю, что это нахмурилось, потому что сваренные пакеты будут построены с зависимостью от чего-то за пределами варева (например, использование pyenv для удаления версии python может сломать сваренные пакеты)? Похоже, что пиво использует то, что питон приходит первым в PATH (в настоящее время версия для Pyenv для меня)? Однако в каждом из нижеприведенных случаев прокладки предназначены для «python», а не «python3» (даже для pyenv 3.4.3). Правильно ли я полагаю, что установка «pyenv shell 3.4.3» заставит команды python для пивоварения (которые, как предполагается, для python2.x) использовать python 3.4.3 pyenv, который, как я полагаю, будет запутан?

pyenv shell 2.7.10 
brew --config 
Python: /Users/anonymous/.pyenv/shims/python => /Users/anonymous/.pyenv/versions/2.7.10/bin/python2.7 
pyenv shell 3.4.3 
brew --config 
Python: /Users/anonymous/.pyenv/shims/python => /Users/anonymous/.pyenv/versions/3.4.3/bin/python3.4 
pyenv shell system 
brew --config 
Python: /Users/anonymous/.pyenv/shims/python => /usr/bin/python 

??? Вопрос. Если использовать пиноны pyenv для заваривания, это плохая идея, тогда я должен также установить пивоваренные версии python и python3, или это конфликт и вызовет проблемы в некотором роде? Мои параметры, похоже, либо используют системный питон, который был установлен на моем Mac, либо используют собственные питоны пива для всех моих пивоваренных потребностей. В первом случае я мог просто удостовериться, что вы назовете «pyenv shell system» до любого пивоварения или установите некоторый псевдоним, чтобы автоматизировать это, как предложили другие (alias brew = «env PATH = $ {PATH // $ (корень pyenv)/прокладки: /} варить "). Однако это означает, что я должен использовать довольно устаревший системный python. Если бы вместо этого я должен был использовать пиво для установки python2 и python3, будет ли это конфликт с версиями, установленными с использованием pyenv, или пиво для пивоваров жить счастливо полностью отделено от pyenv (я думаю, это правда, но я хочу дважды проверить Я попробую)? Это даст мне настройку, в которой все мое пивоварение использовало питон prewon или python3 (я полагаю, мне все еще нужен псевдоним, такой как выше, чтобы убедиться, что версии pyenv не найдены вначале в моем PATH), а все остальное за пределами пива будет использовать pyenv's питоны? Это плохая идея по любой причине?

pyenv global system 
*Add to profile:* 
alias brew="env PATH=${PATH//$(pyenv root)\/shims:/} brew" 
brew install python 
brew install python3 

??? Например, рассмотрим сценарий, в котором я хочу использовать пиво для установки boost-python с привязками python3. Требуется ли эта версия python3 для варки, и будет ли она впоследствии работать для другой версии python 3.x? Если у меня установлены только версии pyenv, значит, в этом случае работает флаг -with-python3? С другой стороны, если у меня есть python3 prewon3, установленный в дополнение к pyenv, я предполагаю, что -with-python3 будет ссылаться на python3 пива (с вышеописанным псевдонимом). Если да, будет ли boost-python даже использоваться при вызове из сеанса python с версией pyenv (не уверен, что это более уместно в качестве вопроса о самом boost-python), или это совершенно нормально?

brew install boost 
brew install boost-python --with-python3 

??? Мнения о символических ссылках на пиво, которые указывают на pyenv python? Другое сообщение, предлагающее символические питоны пиенва, так что пиво может найти их. Помимо очевидного оговорки, что варить сейчас зависит от того, что питон не сам справляется, есть ли что-то ужасное в этой идее?

ln -s $(brew --cellar) ~/.pyenv/versions 
+0

Можете ли вы переформатировать это, чтобы было более ясно, что вы спрашиваете? Если вопросы не очень похожи, рассмотрите их разложение. Проверьте http://stackoverflow.com/help/how-to-ask для справки – Parker

+0

Держите его в чистоте, приятель. – durron597

+0

Отредактированы последние два основных вопроса для наглядности. Если мне придется разбить это, чтобы получить ответы, я буду, но я бы предпочел, чтобы все вопросы не были связаны. –

ответ

1

Разъяснение: Homebrew использует систему Python всякий раз, когда он не делает разницы, какой именно Python 2.7 он использует (что довольно часто). Если вы создадите что-то --with-python, то будет использовать первый Python в PATH, , если, что Python - это Python 2.7. В противном случае, Homebrew будет устанавливать и использовать python для начинающих.

Я бы не ожидал, что вы найдете нужным установить python и python3 для начинающих, но ничего плохого не произойдет, если вы это сделаете. Обратите внимание: если вы используете pip или easy_install для установки пакета, который устанавливает скрипты (например, ipython), эти сценарии записываются так, что пакет всегда будет вызываться с помощью python, на котором он был установлен. (Вы всегда можете обойти это поведение, запустив такие пакеты, как python -m ipython.) В противном случае вы можете контролировать, какой питон вы используете, просто установив $ PATH.

Building boost-python против любого python 3.4 будет работать с любым другим python 3.4. Вероятно, он не будет работать с python 3.5. (Это было сложнее, но это уже не так!)

Symlinking ваших пинонов pyenv в/usr/local не должно повредить, но ничего не делает, кроме как положить их в $ PATH; это не поможет доморощенным найти их иначе.

+0

Спасибо Тим. Однако одно разъяснение. Если я устанавливаю boost-python с помощью «pyenv shell 3.4.3» и «brew install boost-python --with-python3», то, если я когда-либо обновляю python до 3.5, тогда мне придется использовать пиво для удаления и переустановки boost- python с pyenv установлен в новую версию? –

+0

Да, это так. –

+0

Спасибо. Я отдам это. –

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