2009-11-04 56 views
1

我在Mac上升級Python時遇到了一些問題。對於我的第一次嘗試,我從http://python.org/download/mac/下載並安裝了2.6.4 dmg MacPython安裝程序。這確實安裝了2.6.4,並且當我從終端運行'python'時,它說這個版本。試圖在Mac OS 10.5.8上將Python升級到3.0

不過,我也有一個測試腳本,我做的:

import os, json 

,但我得到了「JSON」庫沒有發現錯誤。在腳本中,我包括在該家當在頂部,使其從終端運行:

#! /usr/bin/python 

我懷疑,直接從蘋果而來的符號鏈接點到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安裝,我不知道如何解決這個愚蠢的混亂。

回答

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模塊在那裏。解決您的一部開拓創新的問題,其中一個方法是改變家當線爲:

#!/usr/bin/env python2.6 

而且默認情況下,python.org安裝程序更新殼輪廓到它的bin目錄添加到您的$PATH,這就是爲什麼打字python現在可能調用python2.6

你不應該需要,但是如果你真的要刪除的python.org 2.6的所有痕跡:

  1. 通過恢復到刪除你.bash_profile和/或.profile結束多餘的行.bash_profile.pysave.profile.pysave

  2. 刪除python2.6的框架目錄:

    須藤RM -r /Library/Frameworks/Python.framework/Versions/2。6

  3. 移除閒置並安裝在附加功能/應用範圍:

    須藤RM-R /應用/ Python的\ 2.6

也沒有什麼錯上移動到Python 3。對於目前,Python 2和Python 3正在積極開發之中;搜索檔案的各種優點和缺點。但是,不應該使用Python 3.0。毫不奇怪,對於那些重要的東西,Python 3.0有許多嚴重的首次bug,所以隨着Python 3.1的發佈,3.0支持立即被刪除。