关于 MacOSX Yosemite 上Homebrew和pyenv共存的几个新手问题。这些是我在将我的 google-fu 水平应用于该主题后仍然感到困惑的事情。抱歉冗长,但我想尽可能清楚。
首先,一些背景。我用brew安装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
???问题(或澄清)。如果 brew 使用由 pyenv 安装的 python,我认为这是不受欢迎的,因为 brewed 包将依赖于 brew 之外的东西构建(例如,使用 pyenv 卸载 python 版本可能会破坏 brewed 包)?似乎 brew 使用 PATH 中最先出现的任何 python (目前对我来说是 pyenv 的版本)?但是,在以下每种情况下,垫片都是用于“python”而不是“python3”(即使是 pyenv 3.4.3)。那么我是否正确假设设置“pyenv shell 3.4.3”将使 brew link python 命令(它假设是用于 python2.x)到 pyenv 的 python 3.4.3,我猜这往往会搞砸?
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 进行 brew 是一个坏主意,那么我是否还应该安装 python 和 python3 的 brewed 版本,或者这种冲突会以某种方式导致问题?我的选择似乎是使用安装在我的 Mac 上的系统 python,或者使用 brew 自己的 python 来满足我所有的酿造需求。在第一种情况下,我可以确保在任何 brewing 之前调用“pyenv shell system”,或者按照其他人的建议设置一些别名来自动执行此操作(alias brew="env PATH=${PATH//$(pyenv root) /shims:/} 冲泡”)。但是,这意味着我必须使用相当过时的系统 python。相反,如果我也使用 brew 来安装 python2 和 python3,这是否会与使用 pyenv 安装的版本发生冲突,或者 brew 的 python 是否会与 pyenv 完全分开(我认为这是真的,但我想在尝试之前仔细检查)?这会给我一个设置,其中我所有的酿造都使用了 brew 的 python 或 python3(我假设我仍然需要一个像上面这样的别名来确保在我的 PATH 中首先找不到 pyenv 的版本),并且 brew 之外的所有其他内容都将使用 pyenv蟒蛇?出于某种原因,这是一个坏主意吗?
pyenv global system
*Add to profile:*
alias brew="env PATH=${PATH//$(pyenv root)\/shims:/} brew"
brew install python
brew install python3
???例如,考虑我想使用 brew 安装带有 python3 绑定的 boost-python 的场景。这是否需要酿造的 python3 版本,它随后是否适用于 python 3.x 的不同 pyenv 版本?如果我只安装了 pyenv 的版本,那么 --with-python3 标志在这种情况下是否有效?另一方面,如果我除了 pyenv 之外还安装了 brew 的 python3,我假设 --with-python3 将链接到 brew 的 python3(具有上述别名)。如果是这样,当从运行 pyenv 版本的 python 会话调用时 boost-python 甚至可以使用(不确定这是否更适合作为关于 boost-python 本身的问题),或者这完全没问题?
brew install boost
brew install boost-python --with-python3
???关于 brew 的符号链接指向 pyenv python 的意见?另一篇文章建议对 pyenv 的 python 进行符号链接,以便 brew 可以找到它们。除了 brew 现在依赖于它自己无法管理的 python 的明显警告之外,这个想法有什么可怕的错误吗?
ln -s $(brew --cellar) ~/.pyenv/versions