在终端设置路径

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.

任何建议,将不胜感激.谢谢

Lar*_*x-3 5

要解决这两个问题:编辑~/.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从左到右依次查看变量中的这些位置以执行命令等.请记住,路径由冒号(:)分隔,并按从左到右的优先级降序列出,优先级最高.

方法1 - ("快速简便"版本):

A)重新定义$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的配置.

B)要禁用Enthought Python发行版,请编辑〜/ .bash_profile文件:

切换到您的主目录:

$ 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分发,可以删除这些行和其他注释,而不是将它们注释掉)

方法2 - 使用文本编辑器编辑文件(并解决两个问题)

(下面的解释假设不熟悉vim编辑器)

$ 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)