当我在 Sublime Text 或 CodeRunner 中编译 test.py(一个非常简单的 Python 文件)时,出现错误: /bin/bash: python: command not found 。然后我在终端应用程序中输入 python test.py ,它起作用了。后来我下载了 Pycharm 并再次编译该文件,它也起作用了!

所以我假设有某种路径设置或其他设置不正确的东西。我在互联网上搜索了很长时间,但没有用。请帮助或尝试给出一些如何解决问题的想法。

以下是一些细节:

  • 我试过在 #! /usr/bin/python 文件的顶部插入 test.py 但没有使用
  • Terminal中echo "$PATH"的输出是/usr/local/sbin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/chenyang/Downloads/android-sdk-macosx/platform-tools
  • 我在我的 macbook 中发现了几个 Python 版本:2.6、2.7、3.2、3.3、3.5。在文件夹 /System/Library/Frameworks/Python.framework/Versions 下我找到了 2.6、2.7。在文件夹 /Library/Frameworks/Python.framework/Versions 下,我找到了 3.2、3,3、3.5。


  • 我自己解决了这个问题,并在 下面发布了答案

    最佳答案

    终端加载了许多可以修改您的 PATH 变量的文件,包括 ~/.profile~/.bashrc~/.bash_profile 等。当 Mac OS X 系统 UI 启动时/当您通过 Finder 应用程序登录到您的用户配置文件时,这些文件不会被加载。因此,通过 Finder 启动的应用程序不会继承这些文件中设置的 PATH 和其他环境变量。

    不同版本的 Mac OS X 有不同的设置环境变量的解决方案,以便它们由 Finder 加载。较旧版本的 Mac OS X 支持名为 ~/.MacOSX/environment.plist 的文件,可用于指定环境。较新版本的 OS X 使用 launchctl 工具来设置由 launchctl(负责启动系统 UI 和其他系统服务)启动的应用程序看到的环境变量。

    简而言之,使用命令:

    launchctl setenv <variable-name> <variable-value>
    

    为当前用户设置这个环境变量。以当前用户身份运行的应用程序将继承指定的变量。因此,例如,您可以执行以下操作:
    launchctl setenv PATH "$PATH"
    

    ...从终端将您当前的 PATH 值应用于您帐户的系统。

    也可以看看:
  • How to set the path for finder launched applications - StackExchange
  • launchctl man page - Mac OS X Darwin Reference
  • 关于python - Mac OS X/bin/bash : python: command not found in some IDE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38554566/

    10-14 16:31
    查看更多