我一直在努力将Python 2.7设置为我系统上的默认Python。
Python 2.6附带了我的操作系统,我已经安装了2.7(来自源代码)并且一直试图将其作为我的默认版本。
有一次,有人建议我尝试一个软件包管理器(MacPorts / Fink / Homebrew)并且我做了,我认为这可能是一个坏主意。
整体问题是,在某个地方,不知何故,每次我的shell启动时,Python 2.6都会将自动别名作为我的默认python。我已经浏览了我的.profile和.bashrc,并且没有可以对它们进行别名的命令。
我还设置了默认路径,首先查看/Library/Frameworks/Python.framework/Versions/2.7/bin
。我也试过这个SO post和SU post中的建议无济于事。我需要使用2.7作为我的默认值,因为我的脚本依赖于argparse等等。
此外,我的/ usr / bin / python没有别名,而/ usr / local / bin是:/usr/local/bin/python -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python
答案 0 :(得分:5)
我一直在努力将Python 2.7设置为我系统上的默认Python。
已经是。当你选择一个清晰的Lion框并在shell中输入python
时,它会运行/usr/bin/python
,即Python 2.7.2。
Python 2.6附带我的操作系统
Lion附带2.5,2.6和2.7,以及隐藏的2.3。
它们已安装在/System/Library/Frameworks/Python.framework/Versions
中。除了2.3之外的所有符号链接/usr/bin/python2.x
,在干净的系统上,将是您的PATH上具有该名称的第一件事,因此只需键入python2.6
将运行2.6,而python2.7
将运行2.7
默认情况下,/usr/bin/python
还有一个特殊的包装器运行2.7,但您可以使用VERSIONER_PYTHON_VERSION
或com.apple.versioner.python
首选项进行配置。
我已经安装了2.7(来自源代码)并且一直试图将其作为我的默认版本。
“默认版”是什么意思?您是否希望它在新的终端shell中键入python
时运行,或者在脚本中使用#!/usr/bin/env python
作为shebang行?
最简单的方法是将你安装它的任何目录放在PATH上比/ usr / bin更高。
如果您已经安装了“框架构建”(您应该拥有),则会有一个目录/Library/Frameworks/Python.framework/Versions/2.7/bin
,您可以将其放在PATH的顶部。这样可以避免影响/ usr / local和/ usr的顺序,这意味着您可以使用Python setup.py安装所安装的任何脚本,而无需将它们符号链接到/ usr / local / bin。
这很重要,因为Apple的Python会将脚本安装到/ usr / local / bin中 - 例如,如果你/usr/bin/easy_install-2.7 pip
,你将获得/usr/local/bin/pip
和/ usr / local / bin / pip -2.7 . If you also install
pip为你的自定义Python,你不希望它出现在同一个地方;否则,你最后安装的那个替换另一个。
如果您没有安装框架版本,或者您已将其配置为安装脚本到/usr/local/bin
,或者想要影响/ usr / local的顺序,只需将/usr/local/bin
放在路径的顶部。
不知何故,每次我的shell启动时,Python 2.6都会将自动别名作为我的默认python
通过自动别名,你的意思是有一个bash alias
?在您输入alias
时,它会为您提供一系列内容,包括python
?
如果是这样,你需要解决这个问题,而不是尝试在它上面堆积另一个黑客来撤消它所具有的任何效果。
如果~/.*
中没有别名命令,请查看/etc/
。如果你grep -r alias /etc
,它会给你一个大的列表,你将不得不跳过邮件别名和apache别名(可能还有一些权限被拒绝输出到stderr),但在那之后,应该有没有shell别名。
此外,我的/ usr / bin / python没有别名,
这让我觉得你混淆别名和符号链接。他们不是一回事。问题是哪一个?在修复之前你必须知道什么是错的。
所以,试试这个:
which python
如果你的PATH就是你说的那样,它应该是/Library/Frameworks/Python.framework/Versions/2.7/bin/python
。如果没有,则表示您没有设置PATH权限,因此echo $PATH
并查看。
如果 ,那么ls -l /Library/Frameworks/Python.framework/Versions/2.7/bin/python
。它应该是python2.7
或./python2.7
的符号链接,而不是某个其他目录中的任何内容。如果没有,您的安装就会中断,最好的办法是卸载Python并正确地重新安装。或者只是不重新安装它,并使用Apple的。或者,如果您确实需要2.7.3而不是2.7.2,或者您需要构建独立的py2app
捆绑包(特别是如果您需要它们与较旧的OS X兼容),或者您对{{{{}}过敏1}}并且希望系统范围的文件是世界可写的,或者由于某些其他原因你无法使用Apple,可以从python.org或Homebrew安装,而不是自己尝试。