3 python homebrew path enthought
我正在Mac上安装Homebrew以安装Macvim.安装Homebrew后,我被提示运行brew doctor,这会产生一些警告.我已经解决了其中的几个问题,但我坚持两个:
警告:在你的PATH中找到了Enthought Python.这可能会导致构建问题,因为该软件将自己的iconv和libxml2副本安装到其他构建系统拾取的目录中.
我不确定我是否应该忽略它或寻找卸载Enthought Python的方法.
警告:/ usr/bin发生在/ usr/local/bin之前这意味着将使用系统提供的程序而不是Homebrew提供的程序.两个路径都存在以下工具:
git
git-cvsserver
git-receive-pack
git-shell
git-upload-archive
git-upload-pack
Run Code Online (Sandbox Code Playgroud)
考虑设置PATH,以便在/ usr/bin之前发生/ usr/local/bin.这是一个单行:echo export PATH ="/ usr/local/bin:$ PATH">>〜/ .bash_profile
我跑了
echo export PATH ="/ usr/local/bin:$ PATH">>〜/ .bash_profile
几次但继续得到同样的警告.这是我的路径
nngrey$ echo $PATH
/Users/nngrey/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/bin:/Users/nngrey/.rvm/gems/ruby-2.0.0-p247@global/bin:/Users/nngrey/.rvm/rubies/ruby-2.0.0-p247/bin:/Users/nngrey/.rvm/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Users/nngrey/bin
Run Code Online (Sandbox Code Playgroud)
好的,我在这里找到了第二个问题的答案:如何修改Homebrew的PATH?
我只需要重启终端.但是仍然不确定如何处理Python.
任何建议,将不胜感激.谢谢
~/.bash_profile文件/usr/bin occurs before /usr/local/bin警告:此警告告诉您$PATH环境变量的列表/usr/bin优先级高于/usr/local/bin我认为是home brew安装包的默认位置.
如果你忽略了这一点,那么这就意味着如果你在之前已经安装了该程序(不使用'home brew')之后使用'home brew'安装或升级程序到不同的位置,shell可能会使用旧的副本调用命令不是较新的"家酿"安装版本.
该$PATH变量可能是最重要的Unix Shell环境变量(您可以键入env以列出shell中的环境变量),因为它定义了计算机在查找要执行的程序时将搜索的目录的顺序.首先指定优先级最高的路径名.
您可以~/.bash_profile通过在Terminal.app中键入来查看您的内容:
$ cat ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
记住:不要输入$,它只是表示终端提示.
它应该打印出这样的东西:
# Setting PATH for EPD_free-7.3-2
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}"
export PATH
Run Code Online (Sandbox Code Playgroud)
请注意,Enthought的注释表明它们将原始~/.bash_profile文件保存.bash_profile.pysave在同一目录($HOME)中调用的副本中.如果需要,您可以查看该文件,cat或使用文本编辑器进行检查.如果您决定恢复它,可以通过删除~/.bash_profile文件并重命名.bash_profile.pysave为来完成.bash_profile.(这对我来说不是一个选项,因为我必须在过去第二次安装Enthought的发行版(可能在它自己之上),所以我.bash_profile.pysave仍然包含Enthought的配置,以及我~/.bash_profile.列出的两份Enthought配置.)
这是将$PATHenv变量设置为的Enthought分布${PATH}.为了显示${PATH}变量的含义,让我们进入echo $PATHshell.它应该表明Enthought自己的目录具有第一优先权(因为它们是第一个):
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin
Run Code Online (Sandbox Code Playgroud)
如果仔细观察上面的例子,你可以看到/usr/local/bin在列表中出现两次(!),一次出现在第三个位置,一次出现在倒数第二个位置./usr/bin发生在他们之间,但解析器brew doctor正在检测一个问题(这可能是一个brew doctor只检查尾随的错误/usr/local/bin,但几乎肯定有一个Enthought错误,因为他们离开我的$PATH定义与两个/usr/local/bin在那里.如果你不'看到/usr/local/bin/两次,那可能是因为我可能已经两次安装了Enthought.).
所以,即使这里可能没有问题,brew doctor仍然是这样认为的,我们仍然需要摆脱Enthought目录放置的最高优先级,因为如果我们想在将来使用不同的Python发行版,这些条目可能会干扰'家酿".
shell将$PATH从左到右依次查看变量中的这些位置以执行命令等.请记住,路径由冒号(:)分隔,并按从左到右的优先级降序列出,优先级最高.
$PATH变量,在终端中粘贴此命令:$ echo 'export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
(这会将(回显的)>>操作符追加到~/.bash_profile文件的末尾.如果使用此命令,您仍然需要编辑〜/ .bash_profile以便稍后删除Enthought的东西)
单击此处并向下滚动到第3步以获取有关此特定命令的更多信息.
或者您可以cd进入$HOME目录并将上述命令中的字符串添加到您的.bash_profile手动中,如下所示,以删除Enthought的配置.
切换到您的主目录:
$ cd $HOME
Run Code Online (Sandbox Code Playgroud)
要编辑文件,例如,TextEdit:
$ open -a "TextEdit" .bash_profile
Run Code Online (Sandbox Code Playgroud)
找到这两行:
PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}"
export PATH
Run Code Online (Sandbox Code Playgroud)
并通过#在每行前面放置评论它们.然后保存文件.
(如果您打算不再使用Enthought分发,可以删除这些行和其他注释,而不是将它们注释掉)
$ vim ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
如果您没有写入权限,则可能会阻止您更改~/.bash_profile文件.如果是这样,退出vim(ESC,然后键入:q)并通过在上面添加vim命令sudo和空格来更改为超级用户.您可以sudo稍后exit在shell中键入一次退出('super user do').
首次打开vim时,会显示命令模式,其中输入根本不会更改文件内容,但会向窗口底部的提示添加命令(例如 :q退出或:w写入(保存)更改) ).
在vim,你可以用箭头键(或左右移动H,J,K,L键).找到要编辑的行后,I按键进入-INSERT-模式并开始在光标前插入字符(A在命令模式下按键也将退出命令模式,但将在光标后开始插入文本).
如果您认为将来可能想要使用Enthought发行版,可以通过在每行的开头放置一个#来注释掉所有行,如下所示:
# Setting PATH for EPD_free-7.3-2
# The original version is saved in .bash_profile.pysave
# PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}"
# export PATH
# export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
如果您没有计划使用Enthought发行版或已经卸载它,只需删除〜/ .bash_profile文件中的所有上述行.
要声明$ PATH环境变量的新定义,请在下面添加以下行:
export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
编辑完文件后,按ESC离开-INSERT-模式并返回命令模式.然后键入:wq以编写更改并退出vim编辑器.然后,您将返回到shell.
~/.bash_profile输入以下命令:$ source .bash_profile
Run Code Online (Sandbox Code Playgroud)
如果您只注释掉了Enthought线,那么您将能够返回到您的线路 .bash_profile通过取消注释这两行并再次启用Enthought分发.
现在跑了brew doctor,你应该好好去.如果它在没有警告的情况下运行,请终止终端并重新打开它并再试一次.
跑步echo $PATH现在应该显示:
/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin
Run Code Online (Sandbox Code Playgroud)