我在Mac上升级Python时遇到了一些问题。对于我的第一次尝试,我从http://python.org/download/mac/下载并安装了2.6.4 dmg MacPython安装程序。这确实安装了2.6.4,当我从终端运行'python'时它会说那个版本。
但是,我还有一个我正在做的测试脚本:
import os, json
但是我收到错误,找不到'json'库。在脚本中,我在顶部包含了这个shebang,使其从终端运行:
#! /usr/bin/python
我怀疑直接来自Apple的指向Python 2.5的符号链接没有被2.6.4安装程序更新,因此直接从终端'python'运行较新的版本,但我的test.py文件正在执行2.5。
所以在这一点上我读了几个关于进行此升级的其他SO页面,人们建议使用并排放置的第三方软件包,以免破坏操作系统级别对v2.5的依赖性。然后我发现ActivePython提供了一个3.x安装程序(在另一个SO页面上也推荐使用)。我安装了它,但'python'仍然显示2.6.4,我的脚本仍然无法找到json库。
最后,我对如何安全地删除MacPython(我上面提到的Mac安装程序)感到困惑。页面上有一句话说要删除一些对Mac上的Python非常重要的东西。引用:
* A MacPython 2.5 folder in your Applications folder. In here you find IDLE, the development environment that is a standard part of official Python distributions; PythonLauncher, which handles double-clicking Python scripts from the Finder; and the “Build Applet” tool, which allows you to package Python scripts as standalone applications on your system.
* A framework /Library/Frameworks/Python.framework, which includes the Python executable and libraries. The installer adds this location to your shell path. To uninstall MacPython, you can simply remove these three things. A symlink to the Python executable is placed in /usr/local/bin/.
所以现在我安装了3个版本的Python,我不知道如何解决这个愚蠢的混乱。
答案 0 :(得分:4)
首先,/usr/bin/python
应始终指向Apple提供的python,而10.5指的是python2.5。不要改变这个!
当您安装python.org python2.6时,默认情况下它会在/usr/local/bin/
中安装符号链接,因此调用它的一种方法是/usr/local/bin/python2.6
,或者很可能只是python2.6
。由于json
被添加到python 2.6中的python库,你会发现json模块就在那里。解决你的orignal问题的一种方法是将shebang线改为:
#!/usr/bin/env python2.6
此外,默认情况下,python.org安装程序会更新您的shell配置文件,以将其bin目录添加到$PATH
,这就是为什么键入python
现在可能会调用python2.6
。
你不应该,但如果你真的想要删除python.org 2.6的所有痕迹:
通过恢复为.bash_profile
和.profile
来删除.bash_profile.pysave
和/或.profile.pysave
末尾的额外行。
删除python2.6框架目录:
sudo rm -r /Library/Frameworks/Python.framework/Versions/2.6
删除IDLE和/ Applications中的附加内容:
sudo rm -r / Applications / Python \ 2.6
继续使用Python 3也没什么不对。目前,Python 2和Python 3都在积极开发中;搜索档案的各种利弊。但是,不应使用Python 3.0。毫不奇怪,对于主要的东西,Python 3.0有许多严重的首次错误,因此随着Python 3.1的发布,3.0支持立即被删除。