Python在Mac OS X Lion中自动使用别名

the*_*e_e 6 python macos installation python-2.7

我一直在努力将Python 2.7设置为我系统上的默认Python.

Python 2.6附带了我的操作系统,我已经安装了2.7(来自源代码),并一直试图将其作为我的默认版本.

有人建议我尝试一个软件包管理器(MacPorts/Fink/Homebrew)并且我做了,我认为这可能是一个坏主意.

总的问题是,在某个地方,不知何故,Python 2.6每次我的shell启动时都会自动使用别名作为我的默认python.我已经浏览了我的.profile和.bashrc,并且没有可以对它们进行别名的命令.

我还设置了默认路径以便先查看/Library/Frameworks/Python.framework/Versions/2.7/bin.我也尝试过这个SO帖子中的建议和这个SU帖子无济于事.我需要使用2.7作为我的默认值,因为我有依赖argparse的脚本等等.

此外,我的/ usr/bin/python没有别名,/ usr/local/bin是: /usr/local/bin/python -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python

aba*_*ert 5

我一直在努力将Python 2.7设置为我系统上的默认Python.

它已经是.当你选择一个清晰的Lion框并输入python一个shell时,它就会运行/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.62.6,然后python2.7运行2.7.

/usr/bin/python默认情况下,还有一个特殊的包装器运行2.7,但您可以使用VERSIONER_PYTHON_VERSIONcom.apple.versioner.python首选项配置它.

我已经安装了2.7(来自源代码),并一直试图使我的默认版本.

"默认版"是什么意思?你只是希望它是当你输入python一个新的终端shell 时运行的东西,或者#!/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,你将得到你的定制Python的/usr/local/bin/pip/usr/local/bin/pip-2.7 . If you also installpip`,你就不要不希望它出现在同一个地方; 否则,无论你最后安装哪一个替换另一个.

如果您没有安装框架版本,或者您已将其配置为以/usr/local/bin任何方式安装脚本,或者您希望影响/ usr/local的顺序,请将其放在/usr/local/binPATH的顶部.

不知何故,每次我的shell启动时,Python 2.6都会将自动别名作为我的默认python

通过自动混淆,你的意思是有一个bash alias?就像你输入一样alias,它给你一个包括的东西列表python

如果是这样,你需要解决这个问题,而不是试图在它上面堆积另一个hack来撤消它所具有的任何效果.

如果没有别名命令~/.*,请查看/etc/.如果你grep -r alias /etc,它会给你一大堆的东西,你将不得不跳过邮件别名和apache别名(可能还有一些权限被拒绝输出到stderr),但在那之后,应该没有shell别名.

此外,我的/ usr/bin/python没有别名,

这让我觉得你混淆别名和符号.他们不是一回事.问题是哪一个?在修复之前你必须知道什么是错的.

所以,试试这个:

which python
Run Code Online (Sandbox Code Playgroud)

应该是/Library/Frameworks/Python.framework/Versions/2.7/bin/python你的PATH就是你说的那样.如果没有,你没有设置你的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兼容),或者您对sudo系统范围的文件过敏并且更喜欢是世界可写的,或者由于其他原因你不能使用Apple,从python.org或Homebrew安装,而不是自己尝试.

  • 你可能想知道别名来自哪里,因为......这背后发生了一件非常奇怪的事情,如果你运行了一些安装程序或者某些事情,它可能会做各种其他不好的事情...... (3认同)