当我编译的时候test.py
(一个非常简单的Python文件)在Sublime Text或CodeRunner中,我收到错误:/bin/bash: python: command not found
。然后我输入python test.py
在终端应用程序中,它起作用了。后来我下载了Pycharm,再次编译文件,也成功了!
所以我假设有某种路径设置或其他设置不正确。我在网上搜索了很长时间但没有用。请提供帮助或尝试提供一些解决问题的想法。
以下是一些细节:
我试过插入#! /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
我找到了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 值应用到您帐户的系统。
也可以看看:
- 如何设置finder启动的应用程序的路径 https://apple.stackexchange.com/questions/51677/how-to-set-path-for-finder-launched-applications
- launchctl 手册页 - Mac OS X Darwin 参考 https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/launchctl.1.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)