首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MacOSX Yosemite上自制与碧绿共存的研究

MacOSX Yosemite上自制与碧绿共存的研究
EN

Stack Overflow用户
提问于 2015-08-14 21:34:07
回答 2查看 5K关注 0票数 9

关于、Homebrew、pyenv在MacOSX Yosemite上共存的几个新问题。这些都是我仍然困惑的事情后,应用我的水平谷歌-府的主题。很抱歉这么长,但我想尽量说清楚。

,首先是一些背景。我使用brew来安装pyenv,然后用pyenv安装python2和python3。

代码语言:javascript
复制
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,我认为这是不允许的,因为酿造的包将依赖于brew之外的某些东西(例如使用pyenv卸载python版本可能会破坏已酿造的包)?看来brew使用哪种python在路径中排在第一位(目前的pyenv版本是我的版本)?但是,在以下每一种情况下,shims都是用于“python”而不是“python3”(甚至是pyenv3.4.3)。那么,我是否正确地假设设置“pyenv 3.4.3”将使brew链接python命令(它假设python2.x为python2.x)到pyenv的python3.4.3,我猜这可能会使事情变得一团糟?

代码语言:javascript
复制
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的pythons来酿造是个坏主意,那么我是否也应该安装已酿造的python和python3版本,或者这是否会产生冲突并在某种程度上造成问题?我的选择似乎要么使用安装在我的Mac上的系统python,要么使用brew自己的pythons来满足我的酿造需求。在第一种情况下,我可以确保在任何酝酿之前调用“pyenv系统”,或者设置一些别名来自动实现这一点,就像其他人建议的那样(别名brew="env PATH=${PATH//$(pyenv )/shims:/} brew")。然而,这意味着我必须使用相当过时的系统python。如果我也使用brew来安装python2和python3,这是否会与安装使用pyenv的版本发生冲突,或者brew的pythons将快乐地与pyenv完全分离(我认为这是真的,但我想在尝试之前反复检查一下)?这会给我一个设置吗?我所有的酿造过程都使用brew的python或python3 (我假设我仍然需要一个别名,比如上面的别名,以确保在我的路径中没有首先找到pyenv的版本),而brew之外的所有东西都会使用pyenv的pythons?出于什么原因这是个坏主意吗?

代码语言:javascript
复制
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版本,随后它是否适用于另一个pyenv版本的python3.x?如果我只安装了pyenv的版本,那么-with 3标志在本例中是否有效?另一方面,如果除了pyenv之外还安装了brew的python3,我假设--使用-- python3 3将链接到brew的python3(上面的别名)。如果是这样的话,从运行pyenv版本的python会话中调用boost-python (不确定这是否更适合作为boost-python本身的问题),还是完全正确?

代码语言:javascript
复制
brew install boost
brew install boost-python --with-python3

?关于brew的符号链接,指向pyenv python的?的观点,另一篇文章建议将pyenv的pythons进行符号链接,这样brew就可以找到它们。除了一个显而易见的警告,即brew现在依赖于python,它本身并不管理,这个想法有什么可怕的错误吗?

代码语言:javascript
复制
ln -s $(brew --cellar) ~/.pyenv/versions
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-15 04:29:40

澄清:当系统Python不起作用时,自制软件使用的是Python2.7(这是非常常见的)。如果您构建的是--with-python,那么它将使用路径中的第一个Python,如果那个Python是Python2.7。否则,Homebrew将安装和使用Homebrew。

我不认为您会发现安装Homebrew的python和python3是必要的,但是如果您安装了,就不会有什么不好的事情发生。请注意,如果使用pip或easy_install安装安装脚本的包(如ipython),则编写这些脚本,这样包将始终与安装它的python一起调用。(您可以通过运行像python -m ipython这样的包来避免这种行为。)否则,您可以通过设置$PATH来控制您正在使用的哪个python。

使用任何python3.4构建boost-python将与任何其他python3.4一起工作。它可能不适用于python3.5。(这过去更复杂,但现在不是了!)

将您的pyenv pythons连接到/usr/local中不应该有什么害处,但是除了将它们放在$PATH中之外,什么也不做;它将无助于Homebrew找到它们。

票数 1
EN

Stack Overflow用户

发布于 2020-10-15 03:03:04

我试着回答你们的每一个问题。

1 brew是否对使用pyenv的Python而不是brew的“皱眉”?

简而言之,是的。他们列出了这里的整个故事,简而言之,你需要自己来处理出现的问题。

2 brew Python和pyenv Python会发生冲突吗?

不是的。正如蒂姆·史密斯在另一个回答中所说:“如果你这样做了,就不会有什么坏事发生。”使用您的路径来管理您(或一个应用程序)所看到的Python (这就是pyenv所做的)。

brew Python使用来自pyenv的"oustide“Python所满足的具有Python依赖性的3个包

正如蒂姆所说,这不应该是个问题。

4使用符号链接使我们只使用pyenv

我认为您指的是这个职位,这是一个有趣的想法,但对维护来说可能很危险。我现在就这么做。我布置了在这里怎么做?

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32018969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档