gpt4 book ai didi

Python 在 Mac OS X Lion 中自动别名化

转载 作者:太空狗 更新时间:2023-10-30 00:03:25 25 4
gpt4 key购买 nike

我一直在努力将 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

最佳答案

I have been struggling with setting Python 2.7 to be the default Python on my system.



已经是了。当你拿一个透明的狮子盒子,然后输入 python进入 shell,它运行 /usr/bin/python ,这是 Python 2.7.2。

Python 2.6 came with my OS



Lion 带有 2.5、2.6 和 2.7,以及一个隐藏的 2.3。

它们安装在 /System/Library/Frameworks/Python.framework/Versions .除 2.3 之外的所有版本都有符号链接(symbolic link) /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偏爱。

I have since installed 2.7 (from source) and have been trying to make that my default version.



“默认版本”是什么意思?当您输入 python 时,您是否只想让它运行?在新的终端外壳中,或使用 #!/usr/bin/env python作为脚本中的shebang行?

最简单的方法是将您安装它的任何目录置于 PATH 中比/usr/bin 更高的目录中。

如果你已经安装了一个“框架构建”(你应该有),将会有一个目录 /Library/Frameworks/Python.framework/Versions/2.7/bin您可以将其放在 PATH 的顶​​部。这避免了影响/usr/local 和/usr 的顺序,这意味着您可以使用由 Python setup.py 安装安装的任何脚本,而无需将它们符号链接(symbolic link)到/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在 PATH 的顶​​部。

somehow, Python 2.6 is getting auto-aliased as my default python every time my shell starts



通过自动别名,你的意思是有一个 bash alias ?就像你输入的一样 alias它为您提供了一个列表,包括 python ?

如果是这样,你需要解决这个问题,而不是试图在它上面堆上另一个 hack 来撤消它的任何影响。

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

Further, my /usr/bin/python is not aliased to anything,



这让我觉得你混淆了别名和符号链接(symbolic link)。他们不是一回事。哪一个是问题?在修复它之前,您必须知道出了什么问题。

所以,试试这个:
which python

应该是 /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 的符号链接(symbolic link)或 ./python2.7 , 而不是其他目录中的任何内容。如果没有,则您的安装已损坏,最好的办法是卸载 Python 并正确重新安装它。或者只是不要重新安装它,而使用Apple的。或者,如果您实际上需要 2.7.3 而不是 2.7.2,或者您需要构建独立的 py2app捆绑包(特别是如果您需要它们与旧版 OS X 兼容),或者您对 sudo 过敏并且更喜欢让系统范围的文件是全局可写的,或者由于某些其他原因你不能使用 Apple 的,从 python.org 或 Homebrew 安装而不是尝试自己做。

关于Python 在 Mac OS X Lion 中自动别名化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15439953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com