将Julia添加到PATH导致其他人被PATH淘汰。 Mac OSX

时间:2018-08-28 06:51:58

标签: python macos anaconda julia homebrew

我有一个完美的Anaconda副本(与Spyder在python 3.7一起使用)。我安装了Julia,并将Julia添加到PATH,以便能够使用以下命令从终端运行它(从此源-https://en.wikibooks.org/wiki/Introducing_Julia/Getting_started):

ln -fs "/Applications/Julia-1.0.app/Contents/Resources/julia/bin/julia" /usr/local/bin/julia

这具有以下效果:

A)我不能再使用

conda update conda

但是,Anaconda / Spyder可以正常工作-靠自己。

B) Mac上的默认Python版本已重新设置为2.7-Mac随附的版本

C)键入

python3 
终端中的

会导致

-bash: python3: command not found

但已安装Python 3。

D)在终端上运行以下命令,结果为

ls /usr/local/bin/python

ls: /usr/local/bin/python: No such file or directory

进一步,运行以下命令,

sudo find / -iname python

会产生一个很长的列表,其名称(包括文件夹)中带有“ python”。

E)导致自制软件安装中断。键入

brew upgrade

导致

-bash: brew: command not found 

还要输入

cd /usr/local/Library/Homebrew  

导致

-bash: cd: /usr/local/Library/Homebrew: No such file or directory

F)键入sudo命令,例如以下命令:

sudo nano ~/.bash_profile

导致以下消息:

-bash: sudo: command not found

我已经搜索了解决方案,但无济于事。

看起来,从本质上讲,使用PATH的基于终端的东西已经毁了。

如何修复以上所有问题?

谢谢。

=================

编辑/更新-

1)刚刚重新启动计算机并重新启动终端,我收到以下消息:

-bash: export: `/users/<user_name>/anaconda/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin:/Library/TeX/texbin': not a valid identifier

2)现在,即使终端中的python命令也无法识别。键入

python

在终端中,导致

-bash: python: command not found 

3 个答案:

答案 0 :(得分:1)

让我们解释一下如何在启动/启动Mac时设置PATH

1。 OSX查看文件/ etc / paths,文件内容为

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

2。因此,OSX将环境变量PATH构建为

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

3。接下来,OSX会查看子目录/etc/paths.d/中的所有文件,并且有一个名为40-XQuartz的文件,文件的内容为

/opt/X11/bin

4。因此,OSX将环境变量PATH构建为

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin

5。接下来,OSX在/Users/ssiew/.bash_profile中查看我的.bash_profile文件,请注意ssiew是我的用户名。您的用户名将有所不同。该文件包含以下几行

export PATH=$PATH:/Users/ssiew/bin

6。因此,OSX将环境变量PATH构建为

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/Users/ssiew/bin

7。结束

因此,当您在终端/命令行上键入'julia'时,OSX首先会查找文件

/usr/bin/julia

如果文件存在,则执行该文件,但是如果文件不存在,则查找该文件

/bin/julia

如果文件存在,则执行该文件,但是如果文件不存在,则查找该文件

/usr/sbin/julia

如果文件存在,则执行该文件,但是如果文件不存在,则查找该文件

/sbin/julia

如果文件存在,则执行该文件,但是如果文件不存在,则查找该文件

/usr/local/bin/julia

如果文件存在,则执行该文件,但是如果文件不存在,则查找该文件

/opt/X11/bin/julia

如果文件存在,则执行该文件,但是如果文件不存在,则查找该文件

/Users/ssiew/bin/julia

如果文件存在,它将执行它,但是如果文件不存在,它将最终放弃。

至于您,因为您在处有符号链接

ln -fs "/Applications/Julia-1.0.app/Contents/Resources/julia/bin/julia" /usr/local/bin/julia

它将在/ usr / local / bin / julia中找到符号链接文件,并重定向到/Applications/Julia-1.0.app/Contents/Resources/julia/bin/julia

答案 1 :(得分:0)

尝试在PATH中用$ HOME /替换/ users / username /

答案 2 :(得分:0)

很明显,我试图让Julia从终端启动时破坏了PATH变量,这反映了我对PATH变量的理解不足。

我能够使用@FlyingTeller @crstbr和@Steven Siew提供的帮助来还原自制软件python / python3。

谢谢!

我只需要将原始路径添加回.bash_profile文件。

尽管如此,conda问题仍然是虚幻的。最终,甚至通过更改.bash_profile文件中的路径也解决了该问题。相关路径为:

export PATH="/anaconda3/bin:$PATH"

忽略以下内容:

/users/<user-name>/<remaining_path-to-anaconda>/bin:$PATH

~/<remaining_path-to-anaconda>/bin:$PATH

我想,如果一个人先弄清anaconda文件夹的确切位置会很有帮助。

我仍然需要解决将anaconda python设置为终端中的默认python的问题。我也会弄清楚的。截至目前,我正在工作! :-)

而且,最好的部分是朱莉娅-折磨者-可以从航站楼发射! ;-)

再次感谢大家的支持。

欢呼!