要解决这两个问题:编辑~/.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
请记住:不要键入 $,它只是表示终端提示符。
它应该打印出如下内容:
# 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
请注意,Enthought 的注释表明他们将原件保存在同一目录 ( )中~/.bash_profile
调用的副本中。如果您希望可以查看该文件,请使用文本编辑器或文本编辑器进行检查。如果您决定恢复到它,您可以通过删除文件并重命名为. (这对我来说不是一个选项,因为我过去必须第二次安装 Enthought 的发行版(可能在其自身之上),所以我仍然包含 Enthought 的配置,并且我列出了 Enthought 配置的两个副本。).bash_profile.pysave
$HOME
cat
~/.bash_profile
.bash_profile.pysave
.bash_profile
.bash_profile.pysave
~/.bash_profile.
这是 Enthought 分布将$PATH
env 变量设置为${PATH}
. 为了显示${PATH}
变量包含的内容,让我们进入echo $PATH
shell。它应该表明 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
如果您仔细查看上面的示例,您会发现它/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 发行版,这些条目可能会干扰使用'家酿'。
$PATH
shell 将从左到右的顺序查看变量中的这些位置以执行命令等。记住,路径由冒号 ( :
) 分隔,并按从左到右的降序优先级列出,最高优先级在前。
方法 1 -(“快速简便”版本):
A)重新定义$PATH
变量,将此命令粘贴到终端中:
$ echo 'export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profile
(这会将(>>
操作员)回显的字符串附加到~/.bash_profile
文件的末尾。如果您使用此命令,您仍然需要编辑您的 ~/.bash_profile 以稍后删除 Enthought 内容)
单击此处并向下滚动到第 3 步以获取有关此特定命令的更多信息。
或者您可以cd
进入$HOME
目录并将上述命令中的字符串.bash_profile
手动添加到您的目录中,如下所示,用于删除 Enthought 的配置。
B) 要禁用 Enthought Python 发行版,请编辑您的 ~/.bash_profile 文件:
切换到你的主目录:
$ cd $HOME
例如,要在 TextEdit 中编辑文件:
$ open -a "TextEdit" .bash_profile
找到这两行:
PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}"
export PATH
#
并通过在每行前面放置一个注释掉它们。然后保存文件。
(如果您打算不再使用 Enthought 发行版,您可以删除这些行和其他注释,而不是将它们注释掉)
方法 2 - 使用文本编辑器编辑文件(并解决这两个问题)
(以下解释假设不熟悉 vim 编辑器)
$ vim ~/.bash_profile
如果您没有写入权限,您可能无法更改~/.bash_profile
文件。如果是这样,退出 vim ( ESC
,然后键入:q
) 并通过在上述 vim 命令前面加上sudo
一个空格来更改为超级用户。您可以稍后通过在 shell 中键入一次来退出sudo
(“超级用户执行”) 。exit
当 vim 首次打开时,您会看到命令模式,其中键入根本不会更改文件内容,而是在窗口底部的提示符中添加命令(例如:q
退出,或:w
写入(保存)更改)。
H
在 vim 中,您可以使用箭头键(或, 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"
如果您没有使用 Enthought 发行版的计划或者您已经卸载了它,只需从 ~/.bash_profile 文件中删除上述所有行。
要为 $PATH 环境变量声明一个新定义,请在下面添加这一行:
export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
完成文件编辑后,按ESC
退出-INSERT-
模式并返回命令模式。然后键入:wq
以写入更改并退出 vim 编辑器。然后您将返回到 shell。
要完成,请输入以下内容来获取新保存~/.bash_profile
的内容:
$ source .bash_profile
如果您只注释掉了 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