【问题标题】:Adding Julia to PATH caused others to be knocked off the PATH || Mac OSX将 Julia 添加到 PATH 会导致其他人从 PATH 中退出 || Mac OSX
【发布时间】:2018-08-28 06:51:58
【问题描述】:

我有一个完美的 Anaconda 副本(在 python 3.7 中使用 Spyder)。我安装了 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 

【问题讨论】:

  • /usr/local/bin的内容是什么?
  • 另外,准确地说,您没有将 Julia 添加到 Path 中,而是创建了一个符号链接。添加到路径将类似于export PATH="/Applications/Julia-1.0.app/Contents/Resources/julia/bin/:${PATH}"
  • 你是对的,你已经覆盖了你的 PATH 变量。您可能忘记在您的export 命令末尾添加:${PATH}
  • 您是否已将export 添加到您的bashrc 中?只需从那里删除它并重新启动终端/重新启动系统
  • 冷静下来。第一件事。在您的终端中键入此命令,以便我们知道您的 PATH 设置为什么。类型 ' 集 | grep "^PATH" '

标签: python macos anaconda julia homebrew


【解决方案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

【讨论】:

  • 感谢@Steven Siew 的详细回复。
  • 这如何解释OP遇到的问题?
【解决方案2】:

尝试在您的 PATH 中将 /users/username/ 替换为 $HOME/

【讨论】:

    【解决方案3】:

    显然,我在尝试让 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 的问题。我也会弄清楚的。到目前为止,我已经起来工作了! :-)

    而且,最好的部分是 Julia - 折磨者 - 可以从终端启动! ;-)

    再次感谢大家的支持。

    干杯!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 2018-05-04
      • 2011-07-28
      • 1970-01-01
      • 2012-09-01
      • 1970-01-01
      相关资源
      最近更新 更多