如何在Mac OS X 10.6.7上更新默认的Python安装/修复$ PATH?


8

我知道这个问题以前曾在此站点上被问过,我已经找到了一些值得讨论的问题,但是我找到并尝试过的解决方案不起作用。我想学习Python,但无法在Mac上正确设置它。我正在运行OS X 10.6.7。

我已经从python.org下载了Python 3.2安装程序并将其安装到/Library/Frameworks/Python.framework/Versions/3.2/bin。现在这很好,因为我可以简单地使用IDLE进行开发。为了从命令行使用3.2,python我尝试对$PATH变量重新排序。这是什么~/.profile样子:

PATH=/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin

但是,python仍会启动2.6.1:

steven-macbook:~ steven$ python --version
Python 2.6.1
steven-macbook:~ steven$ . ./.profile
steven-macbook:~ steven$ python --version
Python 2.6.1
steven-macbook:~ steven$ 

经过一段时间的努力之后,我决定我应该简单地卸载3.2并尝试更新Python的系统安装。我不确定如何正确执行此操作,因此我需要使3.2在命令行上运行或更新2.6.1。

Answers:


5

我只是通过在Mac OS X Lion上安装Python 3.2.2来解决了这个问题,所以我想发表一下我的做法,希望有人对它有所帮助。

首先,我同意shadesandcolour的观点,因为您不应该修改Mac随附的python的默认副本,因为使用Python 3.0+解释器运行时,某些脚本可能无法正常工作。话虽如此,要安装最新的Python(在本文发布时为3.2.2),您应该首先从官方网站下载 Python安装程序。按常规安装。在/ Applications / Python(ver)文件夹中运行“ Update Shell Profile.command”文件。

安装python之后,您需要通过在命令行中键入“ sudo nano / etc / paths”来编辑路径。接下来,在出现提示时输入密码。接下来,只需在“ / usr / bin”出现之前“剪切”行“ / usr / local / bin”并“粘贴”它。保存文件,关闭所有打开的终端并运行新的终端实例。现在,当您在命令行中键入“ python”时,shell将首先搜索/ usr / local / bin并运行python的最新副本。


+1,因为我一直在努力解决这一问题。确实,在Snow Leopard上,如果在shell配置中设置PATH无效,则/etc/path按照您的建议进行编辑就可以完美地工作。对我来说,问题在于使图形和终端emacs都可以识别出我想使用自定义python安装。谢谢你的提示!
jrhorn424

如果我也这样做cd /usr/local/bincp python3.7 python然后重新启动终端。
openwonk

1

根据我的经验,使用符号链接和正确排序的PATH是在OS X或我能想到的任何其他nix中共存多个版本的Python的方式。OS X有点愚蠢,但工作方式相同。

首先通过运行以下命令来了解全貌:

which python

然后:

ls -la /usr/bin/python*

并与:

ls -la /usr/local/bin/python*

查看符号链接指向的位置。

根据您发布的PATH,由于/ usr / bin位于/ usr / local / bin之后,而其他人可能正在使用System python解释器:

/usr/bin/python

如果您安装了python3.0,则可能会运行为:

/usr/local/bin/python

现在您知道了指向何处以及从PATH加载了什么解释器,您可以对PATH和/或符号链接进行适当的更改。然后,您可以使用相同的技术来确认正确的更改。

有关在macOS上安装python的更多信息,请参阅python3farmdev


/usr/local/bin/python不存在,但/usr/local/bin/python3确实存在。python3 --version进行我的安装(3.2)。我可以简单地将该符号链接重命名为,python从而不必键入3吗?
Steven Zezulak

如果您的PATH顺序正确(/ usr / local / bin在/ usr / bin之后),那么您可以创建一个执行此操作的符号链接。
2011年

1
但是,如果/ usr / bin在/ usr / local / bin之后,那么它将继续加载系统python(/ usr / bin / python)。
2011年

0

也许如果您通过MacPorts安装Python,它将升级系统版本。我实际上怀疑不是,因为这对我来说有点冒险。但是,当您安装Python时,可能要检查一下MacPorts的功能。


0

我之前曾问过一个人这个问题,建议不要更改python的默认版本,因为部分操作可能取决于2.7版本。话虽这么说,将python3命令放在您的路径上并不需要太多工作。这就是我目前正在做的事情,看起来还不错。


0

如果使用安装程序,则python在/ usr / local / bin / python3中。路径也应该自动更新以python3在终端中可用。旧版本python仍然可用,并且可能被其他系统使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.