2010-12-16 15 views
12

我剛剛從Python.org下載了Python 2.7.1 DMG。我看到了獲得ActivePython的建議,但是我更喜歡Python.org中的一個。與Apple提供的Python並行安裝Python 2.7.1

  1. 如果我只是運行DMG內mpkg安裝程序,接受所有默認值,將它與蘋果提供的Python的和平共處?
  2. 如果我在終端輸入python,我會得到哪一個?
  3. 在終端中,如何指定運行Apple提供的Python?那我自己安裝的Python呢?
  4. 當安裝不同的Python版本時,這些關於設置PATH的討論是什麼?我知道Python安裝程序會自動設置它。但我仍然想在引擎蓋下窺視。我知道如何在Windows(環境變量)中做到這一點。對於Mac OS X,我如何修改PATH

我不妨先嚐試一下我自己,但我是新來的Mac。 Python是一個相當複雜的安裝,將文件寫入不同的文件夾並配置操作系統設置,如PATH。 TrashMe或AppCleaner可能不是非常有效的卸載Python,如果我想回到一個乾淨的平板。因此,我想對上述問題獲得清晰的見解。

+0

可以請你要麼接受一個答案或更新爲什麼答案是不被接受的線程? – Sumod 2011-07-01 17:22:18

回答

24

如果在使用python.org安裝程序時沒有更改默認的軟件包集合,則從命令行輸入python應該運行新安裝的Python 2.7。 (運行安裝程序後需要啓動新的終端會話才能看到此信息。)OS X的當前python.org安裝程序將在您的Applications目錄中創建一個名爲Python m.n的文件夾,具體取決於Python版本。如果您查看/Applications/Python 2.7,您會看到一個名爲Update Shell Profile.command的文件。這是一個shell腳本;你可以在編輯器或Quicklook中檢查它。其目的是修改OS X上最常見shell程序的啓動文件(bash,sh,csh),以確保將新Python的可執行命令所在的目錄添加到PATH中目錄列表的前面環境變量,以便在找到Apple提供的python命令之前找到它中的python命令。默認情況下,安裝程序自動爲您運行Update Shell Profile.command。這將導致這樣的事情:

$ cat ~/.bash_profile 
# .bash_profile 
# ... other stuff 

# Setting PATH for Python 2.7 
# The orginal version is saved in .bash_profile.pysave 
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}" 
export PATH 

如果你把該目錄一看,你會看到這樣的事情:

$ ls -l /Library/Frameworks/Python.framework/Versions/2.7/bin 
total 272 
lrwxr-xr-x 1 root admin  8 Nov 30 00:49 [email protected] -> 2to3-2.7 
-rwxrwxr-x 1 root admin 140 Nov 30 00:30 2to3-2.7* 
lrwxr-xr-x 1 root admin  7 Nov 30 00:49 [email protected] -> idle2.7 
-rwxrwxr-x 1 root admin 138 Nov 30 00:30 idle2.7* 
lrwxr-xr-x 1 root admin  8 Nov 30 00:49 [email protected] -> pydoc2.7 
-rwxrwxr-x 1 root admin 123 Nov 30 00:30 pydoc2.7* 
lrwxr-xr-x 1 root admin  9 Nov 30 00:49 [email protected] -> python2.7 
lrwxr-xr-x 1 root admin  16 Nov 30 00:49 [email protected] -> python2.7-config 
-rwxrwxr-x 1 root admin 33764 Nov 30 00:31 python2.7* 
-rwxrwxr-x 1 root admin 1663 Nov 30 00:31 python2.7-config* 
lrwxr-xr-x 1 root admin  10 Nov 30 00:49 [email protected] -> pythonw2.7 
-rwxrwxr-x 1 root admin 33764 Nov 30 00:31 pythonw2.7* 
lrwxr-xr-x 1 root admin  11 Nov 30 00:49 [email protected] -> smtpd2.7.py 
-rwxrwxr-x 1 root admin 18586 Nov 30 00:30 smtpd2.7.py* 

新的蟒蛇可作爲命令python2.7但也作爲python的象徵性鏈接。因爲PATH環境已經改變:

$ echo $PATH 
/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 

當你輸入python作爲外殼的命令,即符號鏈接將被首先發現在系統提供的用戶命令的目錄/usr/bin一個蘋果提供的python前安裝(如在OS X 10.6):(注意,在一般情況下,你不應該試圖在/usr/bin修改或刪除文件,因爲它們是OS X的一部分,由蘋果公司管理)

$ ls /usr/bin/py* 
/usr/bin/pydoc*   /usr/bin/python-config* /usr/bin/[email protected] 
/usr/bin/[email protected]   /usr/bin/[email protected]  /usr/bin/pythonw* 
/usr/bin/[email protected]   /usr/bin/[email protected] /usr/bin/[email protected] 
/usr/bin/python*   /usr/bin/[email protected]  /usr/bin/[email protected] 

在OS X上管理多個Python安裝有很多方法;檢查檔案或網頁。需要記住的一點是,您始終可以使用所需python命令的絕對路徑來檢查。因此,與修改後的路徑上面,你應該會看到以下行爲:

$ /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 -c 'import sys;print(sys.version)' 
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13) 
[GCC 4.0.1 (Apple Inc. build 5494)] 
$ python2.7 -c 'import sys;print(sys.version)' 
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13) 
[GCC 4.0.1 (Apple Inc. build 5494)] 
$ python -c 'import sys;print(sys.version)' 
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13) 
[GCC 4.0.1 (Apple Inc. build 5494)] 
$ /usr/bin/python -c 'import sys;print(sys.version)' 
2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] 
$ /usr/bin/python2.6 -c 'import sys;print(sys.version)' 
2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] 
4
  1. 是的,它會正常工作。
  2. 您將不得不更改適當的符號鏈接。您始終可以使用which python進行檢查。
  3. 您可以爲不同版本創建額外的符號鏈接(例如python_macpython_standard)。
  4. 閱讀this
1

不同的Python安裝,可向不阻專門運行,如果你使用virtualenv

您可以按照這些文章關於

  1. bootstrapping virtual environments
  2. setting up python ecosystems

這些將指導您在不同的地方安裝不同版本的python,每個版本都有自己的一套站點包,並讓它們分別在不同的項目上工作。強烈建議您仔細研究它,因爲它還解釋瞭如何以簡單的方式更改PATH變量,以便可以通過shell命令找到不同的python安裝。

這裏是什麼地方不同的Python安裝到一些快捷方式..

在終端鍵入which python會告訴你它的位置。您也可以使用python -V查看使用的版本。請記住,pythonpython2.x可以是不同的東西。您可以使用alias命令將適當的名稱分配給不同的python安裝,以便在終端或腳本中調用它們。例如,

alias /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 sys-py27 
  • 蘋果提供的系統Python是安裝在/System/Library/Frameworks/Python.framework/usr/bin/python

    • 事實上,你不應該亂用這些試圖通過手動刪除它們。系統python可能被您計算機中的其他軟件使用。
    • 要檢查什麼是目前系統蟒可以使用

      python -c 'import sys;print(sys.version)'

  • 您下載並運行打包安裝程序通常安裝到/Library/Frameworks/Python.framework/Versions/2.7/bin/

    • 您可以手動刪除Python.framework文件夾。您也可以在Applications文件夾中看到Python以及IDLE,AppBuilder和PythonLauncher等其他內容。如果需要,您可以繼續並刪除這些內容。
  • 的MacPorts將安裝Python或類似python26和python27東西/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/

    • 您可以通過使用通常的sudo port uninstall packageName卸載它們,如果你想刪除的依賴使用這樣的代碼

      sudo port uninstall python27 --follow-dependents installed

    • 所有其他的東西,如numpy,scipy,PIL,opencv等您嘗試使用port安裝會去

      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages