如何明智合理地安裝Python?
譯文【51CTO.com快譯】Python易于使用、對初學者友好且功能強大,可以為幾乎所有應用開發可靠的軟件。但它仍像是一款軟件,這意味著安裝和管理起來可能很復雜。
本文將逐步介紹如何正確地安裝Python:如何選擇合適的版本、如何防止多個版本相互沖突、如何避免這個過程中的種種潛在陷阱。
選擇合適的Python版本和發行版
為了與第三方模塊兼容,選擇比最新版本早一點的Python版本始終是最穩妥的。
截止本文發稿時,Python 3.8.1是最新版本。因此,穩妥的做法是使用Python 3.7的最新更新版(這里是Python 3.7.6)。你始終可以有節制地(比如在虛擬機或測試機中)試用Python的最新版,但選擇早一點的版本可以保證與常見的第三方Python軟件包有最佳兼容性。
Python還有多種發行版,就像Linux一樣。但與Linux不同,Python提供了你始終可以依賴的“官方”版:CPython,它是Python軟件基金會提供的版本。這是最安全、兼容性最廣泛的發行版。
你要做出的一個關鍵選擇(尤其在Windows上)是使用32位還是64位版本的Python。最可能的答案是64位,原因有以下幾個:
- 大多數現代操作系統默認使用64位版本的Python。Windows用戶可以在64位Windows上運行32位版本的Python,但性能會略微下降。
- 32位Python和普通的32位應用程序一次只能訪問4GB內存。64位應用程序沒有此限制,因此許多面向Python的數據分析和機器學習工具在64位版本中效果最好。一些工具只有64位版本。
唯一應選擇32位版本Python的情況是,如果你堅持使用32位版本的Windows,或者需要使用只有32位版本的第三方模塊。
在Windows上明智合理地安裝Python
Python在Windows上的安裝與其他任何應用程序幾乎一樣,通過引導你完成安裝過程的安裝程序來完成。
默認情況下,Windows版的Python安裝程序將可執行文件放在用戶的AppData目錄中,以便不需要管理權限。如果你是系統上的唯一用戶,可能需要將Python放在更高級別的目錄(比如C:\Python3.7)中,以使更易于查找。Windows安裝程序讓你可以指定目標目錄。
為Windows選擇合適的Python安裝程序
Python.org為Windows提供了Python的許多不同版本。除了上述的32位(“x86”)和64位(“x86-64”)版本,你還可以在可嵌入zip文件、可執行安裝程序和基于Web的安裝程序之間選擇。下面分別介紹一下:
- 可執行安裝程序是一個運行Python安裝程序的.EXE文件。這是簡單的默認選擇,也是最常用的選擇。
- 基于Web的安裝程序與可執行安裝程序一樣,只不過它單獨下載執行安裝所需的組件。這大大減小了實際安裝程序的大小,不過當然需要網絡連接。
- 可嵌入zip文件是Python運行時環境的一個獨立最小副本,沒有依賴項,一個文件夾就裝得下。如果你想手動分發Python應用程序,或需要快速一次性安裝Python以快速測試,采用捆綁方案很有用。但是可嵌入zip不含有pip或完整安裝隨附的任何其他實用工具,因此僅供專家使用。
使用面向Windows的軟件包管理器安裝Python
另一個選擇是使用面向Windows的軟件包管理系統。面向.NET的軟件包管理器NuGet在其存儲庫中提供了Python。然而,提供Python主要是為了將它用作.NET應用程序的組件,而不是以此安裝供一般使用的獨立Python實例。如果以常規方式安裝Python,你可能會發現Python實例更易于管理。
更通用的Windows軟件包管理系統Chocolatey也提供Python。Chocolatey是一種便攜的方法,便于運行Python安裝程序,并跟蹤你系統中存在的Python語言運行時環境,因此比NuGet更好。然而,最好避免在同一個系統上混合搭配Chocolatey安裝和Python的常規安裝。
在Linux上明智合理地安裝Python
由于Linux發行版本差異很大,在Linux上安裝Python的典型方法是使用特定發行版的軟件包管理器。比如說,Ubuntu和Fedora有全然不同的Python安裝過程。在Linux(和MacOS)上,安裝的目標目錄通常是預先確定的,并基于Python版本號,比如Linux上的/usr/bin/python3.X或Mac上的/usr/local/opt/python/ 。
想避免處理復雜的Linux軟件包管理器,一種方法是使用容器化的Python運行時環境。容器與系統其余部分隔離運行,因此不必擔心不同的Python運行時環境會干擾對方。然而,如果你的工作流程還沒有包括容器,需要花時間和精力來盡快上手Docker。(請注意,你也可以在Windows上使用容器化的Python。)
一款名為asdf-vm的工具在這里也很方便。你可以使用asdf-vm在類似Unix的系統(Linux和MacOS)上管理多個Python運行時環境,以及管理面向Node.js、Ruby、Elixir及許多其他語言的多個運行時環境。因此,如果你發覺自己應對Python之外的系統的多個版本,不妨考慮asdf-vm。
在MacOS上明智合理地安裝Python
MacOS歷來隨帶安裝了Python版本,但從未比Python 2.7更新穎。Python 3問世后,這帶來了問題,因為兩個版本常常沖突。官方的Python文檔對此有一些注釋,但除了確保你為所需的Python實例使用正確的路徑外,沒有提供更詳細的建議。
在MacOS上管理Python運行時環境的一種常用方法是借助Homebrew軟件包管理器。 Homebrew為下載、安裝、管理和刪除Python及其他第三方命令行應用程序提供了統一的界面。
明智合理地安裝Python軟件包
一旦你完成了Python版本的基本安裝,不要一開始就使用pip將軟件包直接安裝到其中——就算你計劃將Python僅用于一個項目也別這么做。設置項目目錄,將Python虛擬環境安裝到其中,然后將軟件包安裝到這些虛擬環境中。這樣一來,基本安裝保持清潔。
若想要使用虛擬環境和依賴項大體管理多個項目的方式,請查看Poetry項目。Poetry提供了一個命令行工具,便于大體管理虛擬環境和依賴項。
并行安裝多個Python版本
處理Python安裝時最困難的一個問題是如何處理并行安裝的不同版本的Python。這里有兩條通用的經驗法則:
- 始終將每個版本安裝在不同的目錄中。
- 確保任何系統路徑都配置成首先指向你想要默認運行的版本。
運行多個Python版本強烈支持針對每個項目的虛擬環境。激活虛擬環境后,項目上下文中的所有Python活動都自動指向合適的Python版本。
如果Windows用戶安裝了多個版本Python、要控制使用哪個版本,另一個辦法是使用py啟動器應用程序。在Python安裝過程中,你可以選擇安裝py啟動器,這個小型可執行文件讓你可以(通過命令行標志)選擇針對特定的腳本使用哪個Python版本。比如,想為Python 3.7運行pip,就輸入py -3.7 -m pip。
明智合理地升級Python
Python進行次要版本升級(比如Python 3.7.2升級到Python 3.7.3)通常容易得很。在Windows上,安裝程序檢測到現有版本后對其進行升級。在Linux和MacOS上,安裝程序或軟件包管理器通常執行相同的操作。
然而,你創建的任何虛擬環境也需要升級,它們不會自動升級。要在虛擬環境中升級Python,只需進入到虛擬環境目錄,輸入venv --upgrade。同樣要注意,這僅對次要點版本升級(比如Python 3.7.2至Python 3.7.3)最有效。
如果你在執行主要版本升級,比如從python 3.7到python 3.8,最好的選擇是使用venv,在項目目錄中創建一個新的單獨的虛擬環境子目錄,將所有依賴項重新安裝到其中,然后改而使用新的虛擬環境。大多數支持Python的IDE(比如Microsoft Visual Studio Code)會檢測到項目中的多個虛擬環境,允許你在這些環境之間切換。
原文標題:How to install Python the smart way,作者:Serdar Yegulalp
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】