[英]Mac OS X /bin/bash: python: command not found in some IDE
当我在Sublime Text或CodeRunner中编译test.py
(一个非常简单的Python文件)时,我收到错误: /bin/bash: python: command not found
。 然后我在终端应用程序中输入python test.py
,它工作正常。 后来我下载了Pycharm并再次编译了该文件,它也有效!
所以我假设有某种路径设置或其他未正确设置的东西。 我在互联网上搜索了很长时间但没有用。 请帮助或尝试提出一些如何解决问题的想法。
以下是一些细节:
我试过插入#! /usr/bin/python
#! /usr/bin/python
位于test.py
文件的顶部但没有用
终端中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
下,我找到了/System/Library/Frameworks/Python.framework/Versions
。 在文件夹/Library/Frameworks/Python.framework/Versions
下,我找到了/Library/Frameworks/Python.framework/Versions
。
我自己解决了这个问题并在下面发布了答案
终端加载了许多可以修改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值应用于您帐户的系统。
也可以看看:
感谢所有帮助的人。 我自己解决了这个问题。
我一直在使用zsh而不是bash。 将CodeRunner更新到最新版本后,该应用程序默认使用bash。 所以我只需要在运行代码来解决问题时,转到Preference> Advanced菜单并取消勾选在登录模式下调用bash的复选框。
在Sublime Text3中,解决方案在以下链接中: https : //stackoverflow.com/a/38574286/6631854
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.