如何以智能方式安裝 Python

Python易于使用,對初學者友好,功能強大,幾乎可以為任何應用程序創建強大的軟件。

但與任何其他軟件一樣,Python 的設置和管理可能很復雜。

在本文中,我們將介紹如何正確設置 Python。

您將學習如何選擇合適的版本、如何防止多個版本相互干擾以及如何避免出現尖銳問題和潛在的陷阱。

選擇正確的 Python 版本和發行版

在任何一個時間點,Python 的幾個不同版本都在積極接收更新或至少是安全修復。

您可能認為選擇最新版本是有意義的。

但是,為了與第三方模塊兼容,選擇比當前版本落后一個主要修訂點的 Python 版本始終是最安全的。

在撰寫本文時,Python 3.12 是最新發布的版本。因此,最安全的做法是使用最新更新的 Python 3.11。

您可以隨時以可控的方式試用最新版本(稍后會詳細介紹),但回退一個版本可以保證與常見的第三方 Python 包的最佳兼容性。

Python 和 Linux 一樣,也有各種發行版。但與 Linux 不同的是,Python 提供了一個您可以隨時使用的黃金標準“官方”版本:CPython,這是Python.org上 Python 軟件基金會提供的版本。

這是最安全、兼容性最廣泛的發行版,沒有人會因為使用它而被解雇。您可能還想研究其他針對特定用例的 Python 發行版,但我們不會在這里討論它們。

您可能需要做出的一個關鍵選擇(尤其是在 Windows 上)是使用 32 位還是 64 位版本的 Python。最有可能的答案是 64 位,原因如下:

大多數現代操作系統默認使用 64 位版本的 Python。Windows 用戶可以在 64 位 Windows 上運行 32 位版本的 Python,但性能會略有下降。

32 位 Python 和 32 位應用程序通常一次只能訪問 4GB 內存。64 位應用程序沒有此限制,因此許多 Python 數據分析和機器學習工具在 64 位版本中效果最佳。有些工具僅提供 64 位版本。

只有在你只能使用 32 位版本的 Windows 時,或者你需要使用僅在 32 位版本中提供的第三方模塊時,你才應該選擇 32 位版本的 Python。由于這種情況越來越少見,因此 64 位是常見的選擇。

如何在 Windows 上安裝 Python

Python 在 Windows 上的安裝方式與任何其他應用程序類似,通過安裝程序引導您完成安裝過程。

默認情況下,Windows 版 Python 安裝程序會將其可執行文件放在用戶AppData目錄中,這樣就不需要管理權限了。

如果您是系統上的唯一用戶,您可能希望將 Python 放在更高級別的目錄中(例如C:\Python312),以便于查找。Windows 安裝程序允許您指定目標目錄。

為 Windows 選擇正確的 Python 安裝程序

Python.org 為 Windows 提供了各種版本的 Python。

除了前面提到的 32 位(“x86”)和 64 位(“x86-64”)版本外,您還可以選擇可嵌入的 zip 文件、可執行安裝程序和基于 Web 的安裝程序。以下是這些版本的全部內容:

可執行安裝程序:只是一個.exe運行 Python 安裝過程的文件。這是最簡單的默認選擇,也是最常用的。

基于 Web 的安裝程序:與可執行安裝程序相同,只是它會單獨下載執行安裝所需的部分。這大大減少了實際安裝程序的大小,但當然,它需要網絡連接。

可嵌入的 zip 文件:是 Python 運行時的獨立、最小副本,可放在單個文件夾中,沒有任何依賴項。

當您想要手動分發 Python 應用程序,或者需要快速、一次性安裝 Python 來動態測試某些東西時,捆綁它很有用。

但是可嵌入的 zip 不包含pip完整安裝附帶的任何其他有用工具,因此僅供專家使用。

使用 Windows 包管理器安裝 Python

另一個選擇是使用 Windows 包管理系統之一來安裝 Python。

Windows 11 現在預裝了微軟自己的包管理解決方案Winget。(如果您使用的是 Windows 10,則可以手動安裝winget。)

您可以通過指定版本從 Python.org 安裝 Python 的官方版本,例如: winget install Python.Python.3.11,或者使用winget search Python.Python來查找可用的版本。

其他 Windows 包管理工具也提供 Python。.NET 的包管理器 NuGet在其存儲庫中提供 Python。但是,提供 Python 主要是為了將其用作.NET 應用程序中的組件,而不是作為一種安裝 Python 獨立實例以供一般使用的方式。

如果您以常規方式安裝 Python,您可能會發現 Python 實例更易于管理。

Chocolatey是一款更通用的 Windows 包管理系統,也提供 Python。

Chocolateywinget是一種運行 Python 安裝程序和跟蹤系統中 Python 語言運行時存在的便捷方式,因此它是比 NuGet 更好的選擇。

但是,最好避免在同一系統上混合使用 Chocolatey 安裝、Python 安裝和手動安裝。最好總體上確定一個包管理解決方案并堅持使用。

如何在 Linux 上安裝 Python

由于 Linux 發行版差異很大,在 Linux 上安裝 Python 的典型方法是使用特定發行版的包管理器。

例如, Ubuntu和Fedora安裝 Python 的過程完全不同。在 Linux(和 macOS)上,安裝的目標目錄通常是預先確定的,并基于 Python 版本號,例如/usr/bin/python3.X在 Linux 上,或/usr/local/opt/python/在 Mac 上。

另一個用于管理多個 Python 安裝的 Linux 工具是pyenv。它允許您安裝多個并行的 Python 版本,并在它們之間自由切換,無論是系統范圍還是每個項目。

請注意,它pyenv會構建您為系統安裝的每個版本的 Python,因此您需要事先安裝 Python 構建依賴項。

避免處理 Linux 包管理器的復雜性的一種方法是使用容器化的 Python 運行時。容器獨立于系統的其余部分運行,因此您不必擔心不同的 Python 運行時會相互干擾。

但是,如果您的工作流程尚未包含容器,則需要投入時間和精力來熟悉 Docker。(請注意,您也可以在 Windows 上使用容器化的 Python。)

如何在 macOS 上安裝 Python

傳統上,macOS 會預裝一個版本的 Python,但最新版本不會高于 Python 2.7。

當 Python 3 問世時,這帶來了問題,因為這兩個版本經常發生沖突。

官方 Python 文檔對此有一些說明,但除了確保您使用所需的 Python 實例的正確路徑之外,它沒有提供任何更詳細的建議。

在 macOS 上管理 Python 運行時的常用方法是通過Homebrew 包管理器,這是一個非官方(即不是 Apple 創建的)項目,已成為 Mac 上包管理的事實標準。

Homebrew 提供了一致的界面,用于下載、安裝、管理和刪除 Python 和其他第三方命令行應用程序。

Python 安裝技巧和應避免的陷阱

我們討論了在 Windows、Linux 和 macOS 上安裝 Python 的基礎知識。

最后,我們來總結一下三種需要更多技巧的常見安裝場景。?

如何不安裝 Python 包(以及如何安裝)

一旦設置了 Python 版本的基礎安裝,就不要開始直接在其中安裝軟件包pip—不,即使您只打算在一個項目中使用 Python。

設置您的項目目錄,在其中安裝 Python 虛擬環境,然后將軟件包安裝到這些虛擬環境中。這樣,基礎安裝就會保持干凈。

要以高級方式管理具有虛擬環境和依賴項的多個項目,請查看Poetry 項目。Poetry 提供了一個命令行工具,用于高級管理虛擬環境和依賴項。

如何并排安裝多個 Python 版本

處理 Python 安裝時最困難的問題是如何處理并排安裝的不同版本的 Python。這里適用兩個通用經驗法則:

始終將每個版本安裝在不同的目錄中。

確保所有系統路徑都配置為首先指向您想要默認運行的版本。

運行多個 Python 版本強烈支持每個項目都使用虛擬環境。激活虛擬環境后,項目上下文中的所有 Python 活動都會自動定向到正確的 Python 版本。

對于 Windows 用戶來說,另一個選項是py啟動器應用,它允許您控制在安裝多個 Python 版本時使用哪個版本。

在 Python 安裝過程中,您可以選擇安裝啟動器py,這是一個小型可執行文件,允許您(通過命令行標志)選擇要為給定腳本使用哪個版本的 Python。

例如,要運行pipPython 3.11,您需要輸入py -3.11 -m pip。

如何在虛擬環境中升級 Python 版本

Python 的小版本升級(例如,從 Python 3.11.2 升級到 Python 3.11.3)通常相當容易。

在 Windows 上,安裝程序會檢測現有版本并對其進行升級。

在 Linux 和 macOS 上,安裝程序或包管理器通常會執行相同的操作。

但是,您創建的任何虛擬環境也需要升級;它們不會自動升級。要在虛擬環境中升級 Python,只需導航到虛擬環境目錄并輸入venv --upgrade。再次注意,這僅適用于小點修訂升級。

如果您要執行重大點修訂升級,例如從 Python 3.11 升級到 Python 3.12,最好的辦法是使用venv在項目目錄中創建一個新的、單獨的虛擬環境子目錄,將任何依賴項重新安裝到其中,然后切換到使用新的虛擬環境。

大多數支持 Python 的 IDE(例如 Microsoft Visual Studio Code)都會檢測項目中的多個虛擬環境并允許您在它們之間切換。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/36061.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/36061.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/36061.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

學習筆記——動態路由——RIP(附加度量值配置)

六、附加度量值配置 RIP協議cost開銷值:默認值為0,路由信息每傳遞一次,值增加1,最大15,(路由器不能超過15臺)16代表不可達。 入接口附加度量值 rip metricin 5 //可以修改開銷改變路徑。只能增加,不能減小 …

count(*) over (partition by ……)用法詳解

select id,count(*) over(partition by pro_id) from sal; 以pro_id分組,統計分組后每個pro_id的記錄總數及對應的id; 類似還有count(*) over(order by ……)、sum(amount) over(partition by ……)等,略有區別

降低企業運營成本的API服務有哪些?

通過API服務,企業可以實現許多功能和服務的自動化和優化,從而有效降低企業的運營成本。API服務可以幫助企業簡化流程、減少人工操作、提高效率,并提供數據支持和決策依據,從而實現成本的有效控制和降低。無論是人力資源管理、客戶…

【D3.js in Action 3 精譯】1.2.2 可縮放矢量圖形(一)

譯注 由于 1.2.2 小節介紹 SVG 的篇幅過多,為了方便查閱,后續將分多個小節依次進行翻譯。為了確保整個 1.2.2 小節的完整性,特意將上一篇包含的 SVG 小節的內容整理出來重新編排。敬請留意。 1.2.2 SVG - 可縮放矢量圖形 可伸縮矢量圖形&…

kaoYan-English

英語的提高是個日積月累,可以花一個月時間突擊政治。但英語不可。關鍵在于單詞和閱讀理解 提高英語成績的捷徑,多做閱讀題。閱讀理解的分值高,閱讀理解在鞏固詞匯,培養語感有不可替代作用。 選資料,貼合考研難度的&a…

x264 編碼器 i_intra_cost 計算過程

介紹 是uint16_t類型指針變量,用來存儲每個宏塊的幀內代價值,在 frame.h 文件中x264_frame_t結構體中聲明。在*frame_new 函數中將lowres_costs[0][0]指向給i_intra_cost,并 memset 為-1;//代碼有刪減 frame->i_intra_cost = frame->lowres_costs[0][0]; memset( fra…

Raspbian命令行連接WiFi網絡

Raspbian命令行連接WiFi網絡 1. 源由2. 環境3. 信號4. 連接5. 檢查6. 斷開 1. 源由 “懶人”多福,是什么原因,大家知道不,哈哈。 如果大家關注過之前《Ardupilot開源代碼之Rover上路計劃》,為了筆記本電腦在不斷網的情況下進行配…

Rust 中使用 :: 這種語法的幾種情況

文章目錄 1. 訪問模塊成員:2. 訪問關聯函數或靜態方法:3. 訪問 trait 的關聯類型或關聯常量4. 指定泛型類型參數 1. 訪問模塊成員: mod utils {pub fn do_something() { /* ... */ } }let result utils::do_something();2. 訪問關聯函數或靜…

【Spring Cloud Alibaba AI】簡單使用

本文基于官方文檔。 Spring AI 官方文檔:Spring AI :: Spring AI Reference 中文文檔:Spring AI 簡介 - spring 中文網 (springdoc.cn) Spring AI 是 Spring 官方社區項目,旨在簡化 Java AI 應用程序開發,讓 Java 開發者像使用…

達夢數據庫死鎖排查和解決

達夢數據庫死鎖排查和解決 鏈接: 達夢數據庫死鎖排查和解決

道路元素位置和方向的坐標系統: 點 線 面 連接點

道路元素位置和方向的坐標系統: 下圖道路元素在地球坐標系中的位置,該位置由三個坐標軸(x, y, z)組成的笛卡爾坐標系來確定。這種描述特別適用于三維建模和地理信息系統(GIS)中,其中道路被視為一個三維模型…

XSLT 轉換:深入解析與實際應用

XSLT 轉換:深入解析與實際應用 引言 XSLT(Extensible Stylesheet Language Transformations)是一種用于將XML文檔轉換為其他格式(如HTML、XML或文本)的語言。它由W3C制定,是XML技術棧的重要組成部分。XSLT轉換不僅限于格式轉換,還可以用于數據提取、報告生成、復雜計算…

陳皓(左耳朵皓子):程序算法與人生選擇

寫于2012,雖然過去很久了,現在讀來依然很受啟發,或許這就是好文的標準吧,不隨著時間的流逝而減弱。 每年一到要找工作的時候,我就能收到很多人給我發來的郵件,總是問我怎么選擇他們的offer,去騰…

使用 position:absolute; 定位的元素在ios上被遮蓋

在ios上一個元素使用position:absolute;定位后,被其它元素遮蓋 在使用absolute的元素上加一行代碼 -webkit-transform: translate3d(0, 0, 0);

[滲透測試] 任意文件讀取漏洞

任意文件讀取漏洞 概述 漏洞成因 存在讀取文件的功能(Web應用開放了文件讀取功能)讀取文件的路徑客戶端可控(完全控制或者影響文件路徑)沒有對文件路徑進行校驗或者校驗不嚴格導致被繞過輸出文件內容 漏洞危害 下載服務器中的…

Linux下反匯編相關工具

Linux下反匯編相關工具 程序出現崩潰堆棧,如果事先沒有裝調試包或者以調試模式編譯,則打出的堆棧中看不到函數名,或者顯示 n/a。此時往往需要根據 backtrace 打印的函數偏移地址來確定調用的是什么函數,這里就涉及到比較高級的調…

Java8新特性Stream

Stream 是 Java 8 引入的一種新的抽象,用于處理集合類 (Collection) 的數據。Stream 并不存儲數據,而是按需計算數據。Stream 操作有兩個重要特性: 流水線操作 (Pipelining):Stream 操作可以鏈式調用,形成一個流水線&…

springboot項目的打包問題(常用)

在java的日常開發中,離不開項目的打包,怎么將項目打包,并部署到服務器,這是每一個java程序猿都需要會的知識點,我根據自己的經驗寫這篇文章,希望可以幫助到有需要的人。 知識鋪墊:在java項目中…

第十五站:Java琥珀——持續集成與交付的自動化之路

Java作為一種廣泛使用的編程語言,它的生態系統非常龐大和成熟,其中包括了持續集成與持續交付(CI/CD)的工具,這些工具對于現代軟件開發至關重要。下面我將結合Java源代碼,簡要介紹Jenkins和GitLab CI/CD如何…

Compiled blocks

目錄 一,編譯塊 Compiled Block 二,編譯循環 三,調用編譯塊 Invoke 四,Tips and notes 一,編譯塊 Compiled Block 在幾何體網絡內,可將網絡的一部分放入編譯塊(compiled block)內…