【问题标题】:MacOS Sierra: modify $PATH globallyMacOS Sierra:全局修改 $PATH
【发布时间】:2017-03-27 14:17:14
【问题描述】:

在下面获取 $PATH 的 3 个场景:1) 从终端 2) 从 Python 从终端 3) 从 Python (IDLE) 启动

1) 在终端中:>> echo $PATH 指向 ~10-15 个位置列表

2) 在终端中运行 Python:

>> python
>> os.environ['PATH']
>> # I get the same list as in the first scenario. Expected

3) 现在我运行 python IDLE(所以,不要运行终端)

>> os.environ['PATH']
>> # I get different list of paths. much less locations comparing to 1 or 2 scenarios.

问:如何更改 $PATH 以影响 Python IDLE?我发现了一些从 .bash_profile 更新 $PATH 的建议,但看起来它们仅在我运行终端时才会影响 $PATH。

我也考虑过 /etc/paths,但仍然有一个位置 (/usr/loca/bin/) 在 3d 场景中丢失。那么 Mac OS X 中 $PATH 变量的来源是什么?

【问题讨论】:

标签: python macos environment-variables macos-sierra


【解决方案1】:

变量 $PATH 由 .bash_profile 更改,它在您启动终端时执行。在您的情况下,您应该通过例如 Apple 工具 path_helper 编辑 /etc/paths.d/(请参阅 here)。

【讨论】:

  • 我想你错过了这个问题。 IDLE 打印不同的信息
  • 所以,实际上 path_helper 会打印 '/usr/local/bin/' 而 Python IDLE 不会。这是否意味着 Python IDLE 有自己的设置,或者它加载 /etc/paths 但随后通过其他一些设置删除了一些位置?
  • 变量 PATH 通常由 .bash_profile 设置,但这适用于在终端中运行的程序,并且仅当您的 shell 设置为 Bash 时。
  • 您是否尝试过更新.profile 文件而不是.bash_profile 文件中的PATH 变量?
猜你喜欢
  • 1970-01-01
  • 2017-10-16
  • 2018-03-29
  • 2019-02-23
  • 1970-01-01
  • 2017-08-25
  • 1970-01-01
  • 2019-04-30
  • 2017-02-17
相关资源
最近更新 更多