在某些IDE中,Mac OS X /bin/bash:python:command not found

5
当我在Sublime Text或CodeRunner中编译一个非常简单的Python文件test.py时,出现了错误:/bin/bash: python: command not found。然后我在终端应用程序中输入python test.py,它就可以工作了。后来我下载了Pycharm并再次编译该文件,也成功了!
因此我认为有一些路径设置或其他设置没有正确设置。我在互联网上搜索了很长时间,但没有用。请帮忙或尝试提供一些解决问题的思路。
以下是一些详细信息:
  1. 我尝试在test.py文件顶部插入#! /usr/bin/python,但没有用。
  2. 终端中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
  3. 我发现我的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。

我已经自己解决了问题,并在下面发布了答案

你想用哪个版本的Python来运行你的程序?2.7?3.5(推荐)? - MattDMo
在CodeRunner IDE中,我可以选择使用Python2或Python3。所以我尝试了两种都失败了。 - ChenYang
2个回答

4
终端会加载一些可以修改您的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值应用于您的帐户,以使系统生效。

另请参阅:


0

感谢所有帮助过我的人。我已经自己解决了这个问题。

我一直在使用zsh而不是bash。在更新CodeRunner到最新版本后,该应用程序默认使用bash。因此,我只需要进入“首选项>高级”菜单并取消选中复选框在运行代码时以登录模式调用bash即可解决问题。

在Sublime Text3中,解决方案在此链接中:https://dev59.com/jJnga4cB1Zd3GeqPVjxl#38574286


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接