python – 在终端中设置路径
作者:互联网
我正在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
考虑设置PATH以便/usr/local/bin
发生在/usr/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
好的,我在这里找到了第二个问题的答案:How to modify PATH for Homebrew?
我只需要重启终端.但是仍然不确定如何处理Python.
任何建议,将不胜感激.谢谢
解决方法:
要解决这两个问题:编辑〜/ .bash_profile文件
/usr/bin发生在/usr/local/bin警告之前:
此警告告诉您$PATH环境变量将/usr/bin列为比/usr/local/bin更高的优先级,我认为这是home brew安装包的默认位置.
如果你忽略了这一点,那么这就意味着如果你在以前安装了该程序(不使用’home brew’)之后使用’home brew’安装或升级程序到不同的位置,shell可能会使用旧的副本调用命令不是较新的“家酿”安装版本.
$PATH变量可能是最重要的Unix Shell环境变量(您可以键入env以列出shell中的环境变量),因为它定义了计算机在查找要执行的程序时将搜索的目录的顺序.首先指定优先级最高的路径名.
您可以通过在Terminal.app中键入来查看〜/ .bash_profile的内容:
$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保存在同一目录($HOME)中名为.bash_profile.pysave的副本中.如果需要,您可以查看该文件,请使用cat或文本编辑器进行检查.如果您决定恢复它,可以通过删除〜/ .bash_profile文件并将.bash_profile.pysave重命名为.bash_profile来实现. (这对我来说不是一个选项,因为我过去必须第二次安装Enthought的发行版(可能在它自己之上),所以我的.bash_profile.pysave仍然包含Enthought的配置,以及我的〜/ .bash_profile.两份Enthought配置.)
这是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医生的解析器正在检测一个问题(这可能是一个brew医生bug,只检查尾随/usr/local/bin,但几乎可以肯定是一个Enthought bug,因为它们留下我的$PATH定义,其中包含两个/usr/local/bin.如果你没有看到/usr/local/bin /两次,那么可能是因为我可能已经在我的端部安装了两次Enthought.).
所以,即使这里可能没有问题,brew医生仍然这么认为,我们仍然需要摆脱Enthought的目录放在最高优先级,因为如果我们想要获取不同的Python发行版,这些条目可能会干扰未来使用’家酿“.
shell将从左到右依次查看$PATH变量中的这些位置以执行命令等.
请记住,路径由冒号(:)分隔,并按从左到右的降序优先级列出,优先级最高.
方法1 – (“快速简便”版本):
A)重新定义$PATH变量,在终端中粘贴此命令:
$echo 'export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profile
(这会将回显的字符串(>>运算符)附加到〜/ .bash_profile文件的末尾.如果使用此命令,您仍需要编辑〜/ .bash_profile以便稍后删除Enthought内容)
单击here并向下滚动到步骤3以获取有关此特定命令的更多信息.
或者您可以进入$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)并通过在sudo和空格前面添加上面的vim命令来更改为超级用户.您可以稍后在shell中键入exit一次退出sudo(‘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"
如果您没有计划使用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分发.
现在跑啤酒医生,你应该好好去.如果它在没有警告的情况下运行,请终止终端并重新打开它并再试一次.
运行echo $PATH现在应该显示:
/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin
标签:python,homebrew,path,enthought 来源: https://codeday.me/bug/20190825/1719250.html