【python3.10安裝教程】在 Windows 上使用 Python3.10最新版本

2021-12-28 程式設計師阿沐

【點擊閱讀原文可以跳轉至Python3.10最新版全套教程】

本文檔旨在概述在 Microsoft Windows 上使用 Python 時應了解的特定於 Windows 的行為。

與大多數UNIX系統和服務不同,Windows系統沒有預安裝Python。多年來CPython 團隊已經編譯了每一個 發行版 的Windows安裝程序(MSI 包),已便Windows 用戶下載和安裝。這些安裝程序主要用於每個用戶單獨安裝Python時,添加核心解釋器和庫。安裝程序還可以為一臺機器的所有用戶安裝,並且可以為應用程式本地分發提供單獨的zip文件。

如 PEP 11 所述,Python 發布版對某個 Windows 平臺的支持僅限於被 Microsoft 視為處於延長支持周期內的版本。這意味著 Python 3.10 支持 Windows 8.1 及其後的版本。如果你需要 Windows 7 支持,請安裝 Python 3.8。

Windows提供了許多不同的安裝程序,每個安裝程序都有一定的優點和缺點。

完整安裝程序 內含所有組件,對於使用Python 進行任何類型項目的開發人員而言,它是最佳選擇。

Microsoft Store包 是一個簡單的Python 安裝,適用於運行腳本和包,以及使用IDLE或其他開發環境。它需要Windows 10,但可以安全地安裝而不會破壞其他程序。它還提供了許多方便的命令來啟動Python及其工具。

nuget.org 安裝包 是用於持續集成系統的輕量級安裝。它可用於構建Python包或運行腳本,但不可更新且沒有用戶界面工具。

可嵌入的包 是Python的最小安裝包,適合嵌入到更大的應用程式中。

4.1. 完整安裝程序4.1.1. 安裝步驟

四個 Python 3.10 安裝程序可供下載 - 32位和64位版本的各有兩個。 web installer (網絡安裝包)是一個小的初始化工具,它將在安裝過程中,根據需要自動下載所需的組件。 offline installer (離線安裝包)內含默認安裝所需的組件,可選擇功能仍需要Internet連接下載。請參閱 當安裝時不下載 以了解在安裝過程中避免下載的其他方法。

啟動安裝程序後,可以選擇以下兩個選項之一:

如果你選擇「馬上安裝」:

選擇「客製化安裝」將允許你選擇所需的項目進行安裝,安裝位置與其他選擇或安裝後的所需進行的動作。你將需要使用此選項「除錯特徵」或「二進位方式」進行安裝。

如要為全部用戶安裝,應選擇「自定義安裝」。在這種情況下:

4.1.2. 刪除 MAX_PATH 限制

歷史上Windows的路徑長度限制為260個字符。這意味著長於此的路徑將無法解決並導致錯誤。

在最新版本的 Windows 中,此限制可被擴展到大約 32,000 個字符。但需要讓管理員激活「啟用 Win32 長路徑」組策略,或在註冊表鍵 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 中設置 LongPathsEnabled 為 1。

這允許 open() 函數,os 模塊和大多數其他路徑功能接受並返回長度超過 260 個字符的路徑。

更改上述選項後,無需進一步配置。

3.6 版更變: Python中啟用了對長路徑的支持。

4.1.3. 安裝排除使用者介面

安裝程序UI中的所有選項也可以從命令行指定,允許腳本安裝程序在許多機器上複製安裝,而無需用戶交互。還可以在不禁用UI的情況下設置這些選項,以更改一些默認值。

要完全隱藏安裝程序UI並靜默安裝Python,請使用 /quiet 選項。要跳過用戶交互但仍然顯示進度和錯誤,請使用 /passive 選項。可以通過 /uninstall 選項立即開始刪除Python - - 不會顯示任何提示。

所有其他選項都傳遞為 name=value ,其中值通常是 0 來禁用某個特性, 1 來啟用某個特性或路徑。可用選項的完整列表如下所示。

名稱

描述

預設

InstallAllUsers

為所有用戶安裝。

0

TargetDir

安裝目錄

基於InstallAllUsers選擇

DefaultAllUsersTargetDir

為所有用戶安裝時的默認安裝路徑

%ProgramFiles%\Python X.Y 或 %ProgramFiles(x86)%\Python X.Y

DefaultJustForMeTargetDir

預設安裝目錄給 只有給我 安裝方式

%LocalAppData%\Programs\PythonXY 或 %LocalAppData%\Programs\PythonXY-32 或 %LocalAppData%\Programs\PythonXY-64

DefaultCustomTargetDir

UI中顯示的默認自定義安裝目錄

(空)

AssociateFiles

當執行程序也被安裝時創造檔案關聯

1

CompileAll

編譯所有 .py 檔案為 .pyc。

0

PrependPath

將install和Scripts目錄添加到 PATH 以及將 .PY 添加到 PATHEXT

0

Shortcuts

如果已安裝,為解釋器,文檔和IDLE創建快捷方式

1

Include_doc

安裝Python文件

1

Include_debug

安裝調試二進位文件

0

Include_dev

安裝開發人員頭文件和庫

1

Include_exe

安裝 python.exe 及相關文件

1

Include_launcher

安裝 適用於Windows的Python啟動器 .

1

InstallLauncherAllUsers

為所有用戶安裝 適用於Windows的Python啟動器 。

1

Include_lib

安裝標準庫和擴展模塊

1

Include_pip

安裝捆綁的pip和setuptools

1

Include_symbols

安裝調試符號(*.pdb)

0

Include_tcltk

安裝Tcl/Tk 支持和IDLE

1

Include_test

安裝標準庫測試套件

1

Include_tools

安裝實用程序腳本

1

LauncherOnly

僅安裝啟動器。這將覆蓋大多數其他選項。

0

SimpleInstall

禁用大多數安裝UI

0

SimpleInstallDescription

使用簡化安裝UI時顯示的自定義消息。

(空)

例如,要以靜默方式全局安裝默認的Python,您可以(在命令提示符>)使用以下命令:

python-3.9.0.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0

要允許用戶在沒有測試套件的情況下輕鬆安裝Python的個人副本,可以使用以下命令提供快捷方式。這將顯示一個簡化的初始頁面,不允許自定義:

python-3.9.0.exe InstallAllUsers=0 Include_launcher=0 Include_test=0
SimpleInstall=1 SimpleInstallDescription="Just for me, no test suite."

(請注意,省略啟動器也會省略文件關聯,並且僅在全局安裝包含啟動器時才建議用於每用戶安裝。)

上面列出的選項也可以在一個名為 unattend.xml 的文件中與可執行文件一起提供。此文件指定選項和值的列表。作為屬性提供的值,(如果可能)它將轉換為數字。作為文本提供的值,始終保留為字符串。此示例文件設置與上一示例採用相同的選項:

<Options>
<Option Name="InstallAllUsers" Value="no" />
<Option Name="Include_launcher" Value="0" />
<Option Name="Include_test" Value="no" />
<Option Name="SimpleInstall" Value="yes" />
<Option Name="SimpleInstallDescription">Just for me, no test suite</Option>
</Options>

4.1.4. 當安裝時不下載

由於下載的初始安裝包中未包含Python的某些可選功能,如果選擇安裝這些功能可能需要Internet連接。為了避免這種需要,可以按需下載所有可能的組件,以創建一個完整的布局,該布局將不再需要internet連接,而不管所選擇的特性是什麼。請注意,此下載可能比要求的要大,但是如果要執行大量安裝,則擁有本地緩存的副本非常有用。

從命令提示符執行以下命令以下載所有可能的必需文件。請記得要將 python-3.9.0.exe 替換為安裝程序的實際名稱,並在單獨的目錄中創建子目錄以避免同名文件間的衝突。

python-3.9.0.exe /layout [optional target directory]

您也可以指定 /quiet 選項來隱藏進度顯示。

4.1.5. 修改安裝

安裝Python後,您可以通過Windows中的「程序和功能」工具添加或刪除功能。選擇Python條目並選擇「卸載/更改」以在維護模式下打開安裝程序。

「修改」 允許您通過修改複選框來添加或刪除功能 - 未更改的複選框將不會安裝或刪除任何內容。在此模式下無法更改某些選項,例如安裝目錄;要修改這些,您需要完全刪除然後重新安裝Python。

「修復」 將使用當前設置驗證應安裝的所有文件,並替換已刪除或修改的任何文件

「卸載」 將完全刪除Python,但 適用於Windows的Python啟動器 除外,它在「程序和功能」中有自己的條目。

4.2. Microsoft Store包

3.7.2 版新加入.

Microsoft Store包是一個易於安裝的Python解釋器,主要用於交互式使用,例如,學生。

要安裝軟體包,請確保您擁有最新的Windows 10更新,並在Microsoft Store應用程式中搜索 "Python 3.10" 。確保您選擇的應用程式由 Python Software Foundation 發布並安裝。

警告

 

Python將始終在Microsoft Store上免費提供。如果要求您付款,則表示您沒有選擇正確的包。

安裝完成後,可以在開始菜單中找到它來啟動 Python。或者可以在命令提示符或 PowerShell 會話中輸入 python 來啟動。此外可以輸入 pip 或 idle 來使用 pip 和 IDLE。IDLE 也在開始菜單中。

所有這三個命令也可以使用版本號後綴,例如, python3.exe 和 python3.x.exe 以及 python.exe (其中 3.x 是您要啟動的特定版本,例如 3.10 )。在 設置-->主頁-->應用和功能 頁面中,點選 管理可選功能 ,選擇與每個命令關聯的python版本。建議確保 pip 和 idle 與選擇的 python 版本一致。

可以使用 python -m venv 創建虛擬環境並激活並正常使用。

如果你已經安裝了另一個版本的Python並將它添加到你的 PATH 變量中,那麼它將作為 python.exe 而不是來自Microsoft Store的那個。要訪問新安裝,請使用 python3.exe 或 python3.x.exe 。

py.exe 啟動器將檢測此 Python 安裝版,但會優先使用來自傳統安裝器的安裝版。

要刪除Python,請打開「設置」並使用「應用程式和功能」,或者在「開始」中找到Python,然後右鍵單擊以選擇「卸載」。卸載將刪除該已安裝Python程序中的所有軟體包,但不會刪除任何虛擬環境

4.2.1. 已知的問題

由於Microsoft Store應用程式的限制,Python腳本可能無法對共享位置(如 TEMP )和註冊表進行完全寫入訪問。相反,它將寫入私人副本。如果腳本必須修改共享位置,則需要安裝完整安裝程序。

有關此限制的技術原理的更多細節,請查詢 Microsoft 已打包完全可信應用的文檔,當前位於 docs.microsoft.com/en-us/windows/msix/desktop/desktop-to-uwp-behind-the-scenes

4.3. nuget.org 安裝包

3.5.2 版新加入.

nuget.org是一個精簡的Python環境,用於在沒有全局安裝Python的系統的持續集成和構建。雖然Nuget是「.NET的包管理器」,但是對於包含構建時工具的包來說,它也可以很好地工作。

訪問 nuget.org 獲取有關使用nuget的最新信息。下面的摘要對Python開發人員來說已經足夠了。

 nuget.exe 命令行工具可以直接從 https://aka.ms/nugetclidl 下載,例如,使用curl或PowerShell。使用該工具安裝64位或32位最新版本的Python:

nuget.exe install python -ExcludeVersion -OutputDirectory .
nuget.exe install pythonx86 -ExcludeVersion -OutputDirectory .

要選擇特定版本,請添加 -Version 3.x.y 。輸出目錄可以從 . 更改,包將安裝到子目錄中。默認情況下,子目錄的名稱與包的名稱相同,如果沒有 -ExcludeVersion 選項,則此名稱將包含已安裝的特定版本。子目錄裡面是一個包含Python安裝的 tools 目錄:

# Without -ExcludeVersion
> .\python.3.5.2\tools\python.exe -V
Python 3.5.2

# With -ExcludeVersion
> .\python\tools\python.exe -V
Python 3.5.2

通常,nuget包不可升級,應該平行安裝較新版本並使用完整路徑引用。或者,手動刪除程序包目錄並再次安裝。如果在構建之間不保留文件,許多CI系統將自動執行此操作。

除了 tools 目錄外,還有一個 build\native 目錄。它包含一個MSBuild屬性文件 python.props ,可以在C++項目中使用該文件來引用Python安裝。包含這些設置將自動在生成中使用標頭和導入庫。

nuget.org上的包信息頁是 www.nuget.org/packages/python 對於64位版本和 www.nuget.org/packages/pythonx86 表示32位版本。

4.4. 可嵌入的包

3.5 版新加入.

嵌入式發行版是一個包含最小Python環境的ZIP文件。它旨在作為另一個應用程式的一部分,而不是由最終用戶直接訪問。

解壓縮後,嵌入式發行版(幾乎)與用戶系統完全隔離,包括環境變量、系統註冊表設置和已安裝的軟體包。標準庫作為預先編譯和優化的 .pyc 文件包含在ZIP中,並提供了 python3.dll , python37.dll , python.exe 和 pythonw.exe 文件。不包括Tcl/tk(包括所有依賴項,如Idle),pip和Python文檔。

備註

 

嵌入式發行版不包括 Microsoft C Runtime ,應用程式安裝程序負責提供此功能。運行時可能已經預先安裝在用戶的系統上或通過Windows Update自動安裝,並且可以通過在系統目錄中找到 ucrtbase.dll 來檢測

第三方軟體包應該由應用程式與嵌入式發行版一起安裝。這個發行版不支持像常規Python安裝那樣使用pip來管理依賴關係,不過可以小心地將pip包含進來並使用它進行自動更新。通常,第三方包應該作為應用程式的一部分(「打包」)處理,以便開發人員在向用戶提供更新之前能夠確保與新版本兼容。

下面描述了這個發行版的兩個推薦用例。

4.4.1. Python應用程式

用Python編寫的應用程式並不一定要求用戶了解這一事實。在這種情況下,可以使用嵌入式發行版在安裝包中包含Python的私有版本。根據它應該有多透明(或者相反,它應該看起來有多專業),有兩個選項。

使用專門的可執行文件作為啟動程序需要一些編碼,但為用戶提供了最透明的體驗。使用定製的啟動器,沒有明顯的跡象表明程序是在Python上運行的:圖標可以定製,公司和版本信息可以指定,文件關聯可以正常運行。在大多數情況下,自定義啟動程序應該只需使用硬編碼的命令行就能調用 Py_Main

更簡單的方法是提供批處理文件或生成的快捷方式,使用所需的命令行參數直接調用 python.exe 或 pythonw.exe 。在這種情況下,應用程式將顯示為Python而不是其實際名稱,並且用戶可能無法將其與其他正在運行的Python進程或文件關聯區分開來。

對於後一種方法,包應該與Python可執行文件一起作為目錄安裝,以確保它們在路徑上可用。使用專用的啟動器,包可以位於其他位置,因為在啟動應用程式之前有機會指定搜索路徑。

4.4.2. 嵌入 Python

用本地代碼編寫的應用程式通常需要某種形式的腳本語言,嵌入式Python發行版可以用於此目的。通常,應用程式的大部分都是本機代碼,某些部分將調用 python.exe 或直接使用 python3.dll 。無論是哪種情況,將嵌入的發行版解壓縮到應用程式安裝的子目錄中就足以提供可加載的Python解釋器。

與應用程式使用一樣,包可以安裝到任何位置,因為在初始化解釋器之前有機會指定搜索路徑。否則,使用嵌入式發行版和常規安裝之間沒有根本區別。

4.5. 替代捆綁包

除了標準的CPython發行版之外,還有一些包含附加功能的修改包。以下是熱門版本及其主要功能的列表:

ActivePython

具有多平臺兼容性的安裝程序,文檔,PyWin32

Anaconda

流行的科學模塊(如numpy,scipy和pandas)和 conda 包管理器。

Canopy

具有編輯器和其他開發工具的「全面的Python分析環境」。

WinPython

特定於Windows的發行版,包含用於構建包的預構建科學包和工具。

請注意,這些軟體包可能不包含最新版本的Python或其他庫,並且不由核心Python團隊維護或支持。

4.6. 設定 Python

要從命令提示符方便地運行Python,您可以考慮在Windows中更改一些默認環境變量。雖然安裝程序提供了為您配置PATH和PATHEXT變量的選項,但這僅適用於單版本、全局安裝。如果您經常使用多個版本的Python,請考慮使用 適用於Windows的Python啟動器 。

4.6.1. 附錄:設置環境變量

Windows允許在用戶級別和系統級別永久配置環境變量,或臨時在命令提示符中配置環境變量。

要臨時設置環境變量,請打開命令提示符並使用 set 命令:

C:\>set PATH=C:\Program Files\Python 3.9;%PATH%
C:\>set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
C:\>python

這些環境變量的更改將應用於在該控制臺中執行的任何其他命令,並且,由該控制臺啟動的任何應用程式都繼承設這些設置。

在百分號中包含的變量名將被現有值替換,允許在開始或結束時添加新值。通過將包含 python.exe 的目錄添加到開頭來修改 PATH 是確保啟動正確版本的Python的常用方法。

要永久修改默認環境變量,請單擊「開始」並搜索「編輯環境變量」,或打開系統屬性的 高級系統設置 ,然後單擊 環境變量 按鈕。在此對話框中,您可以添加或修改用戶和系統變量。要更改系統變量,您需要對計算機進行無限制訪問(即管理員權限)。

備註

 

Windows會將用戶變量串聯在系統變量 之後 ,這可能會在修改 PATH 時導致意外結果。

PYTHONPATH 變量被Python 2和Python 3的所有版本使用,因此除非它只包含與所有已安裝的Python版本兼容的代碼,否則不要永久配置此變量。

也參考

https://www.microsoft.com/en-us/wdsi/help/folder-variables

環境變數於 Windows NT

https://technet.microsoft.com/en-us/library/cc754250.aspx

用於臨時修改環境變量的SET命令

https://technet.microsoft.com/en-us/library/cc755104.aspx

用於永久修改環境變量的SETX命令

https://support.microsoft.com/en-us/help/310519/how-to-manage-environment-variables-in-windows-xp

如何管理環境變數於 Windows XP

https://www.chem.gla.ac.uk/~louis/software/faq/q1.html

設定環境變數-Louis J. Farrugia

4.6.2. 查找Python可執行文件

3.5 版更變.

除了使用自動創建的Python解釋器的開始菜單項之外,您可能還想在命令提示符下啟動Python。安裝程序有一個選項可以為您設置。

在安裝程序的第一頁上,可以選擇標記為「將Python添加到環境變量」的選項,以使安裝程序將安裝位置添加到 PATH 。還添加了 Scripts\ 文件夾的位置。這允許你輸入 python 來運行解釋器,並且 pip 用於包安裝程序。因此,您還可以使用命令行選項執行腳本,請參閱 命令行 文檔。

如果在安裝時未啟用此選項,則始終可以重新運行安裝程序,選擇「修改」並啟用它。或者,您可以使用 附錄:設置環境變量 的方法手動修改 PATH 。您需要將Python安裝目錄添加到 PATH 環境變量中,該內容與其他條目用分號分隔。示例變量可能如下所示(假設前兩個條目已經存在):

C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Python 3.9

4.7. UTF-8 模式

3.7 版新加入.

Windows 仍然使用傳統編碼格式作為系統的編碼格式(ANSI 代碼頁)。Python 使用它作為文本文件默認的編碼格式 (即 locale.getpreferredencoding())。

這可能會造成問題,因為網際網路和大多數 Unix 系統包括 WSL (Windows Subsystem for Linux) 廣泛使用 UTF-8。

你可以使用 Python UTF-8 模式 將默認的文本編碼格式改為 UTF-8。要啟用 Python UTF-8 模式 可以通過 -X utf8 命令行選項,或者 PYTHONUTF8=1 環境變量。請參閱 PYTHONUTF8 了解如何啟用 UTF-8 模式,並參閱 附錄:設置環境變量 了解如何修改環境變量。

當 Python UTF-8 模式 啟用時,你仍然可以通過 "mbcs" 編解碼器使用系統編碼格式(ANSI 代碼頁)。

請注意添加 PYTHONUTF8=1 到默認環境變量將會影響你的系統中的所有 Python 3.7+ 應用。如果你有任何 Python 3.7+ 應用仍然依賴於傳統的系統編碼格式,則推薦設置臨時環境變量或使用 -X utf8 命令行選項。

備註

 

即使在不啟用 UTF-8 模式時,Windows 版的 Python 也會在以下情況中默認使用 UTF-8:

4.8. 適用於Windows的Python啟動器

3.3 版新加入.

用於Windows的Python啟動器是一個實用程序,可幫助定位和執行不同的Python版本。它允許腳本(或命令行)指示特定Python版本的首選項,並將定位並執行該版本。

與 PATH 變量不同,啟動器將正確選擇最合適的Python版本。它更傾向於按用戶安裝而不是系統安裝,並按語言版本排序,而不是使用最新安裝的版本。

啟動器最初是在 PEP 397 中指定的。

4.8.1. 開始4.8.1.1. 從命令行

3.6 版更變.

全局安裝Python 3.3及更高版本將把啟動器放在你的 PATH 上。啟動程序與所有可用的Python版本兼容,因此安裝哪個版本無關緊要。要檢查啟動程序是否可用,請在命令提示符中執行以下命令:

py

您應該會發現已安裝的最新版本的Python已啟動 - 它可以正常退出,並且將指定的任何其他命令行參數直接發送到Python。

如果您安裝了多個版本的Python(例如,2.7和 3.10 ),您會注意到Python 3.10 啟動 - 如果要啟動Python 2.7,嘗試命令:

py -2.7

如果您想使用 Python 2.x 的最新版本,請嘗試以下命令:

py -2

你會發現Python 2.x 的最新版本已啟動。

如果您看到以下錯誤,則表明您沒有安裝啟動器:

'py' is not recognized as an internal or external command,
operable program or batch file.

除非在安裝時選擇了該選項,單個用戶安裝的Python不會將啟動程序添加到 PATH 。

4.8.1.2. 虛擬環境(Virtual environment)

3.5 版新加入.

如果啟動程序運行時沒有明確的Python版本,並且虛擬環境(使用標準庫創建 venv 模塊或外部 virtualenv 工具)處於活動狀態,則啟動程序將運行虛擬環境的解釋器而不是全局的。要運行全局解釋器,請停用虛擬環境,或顯式指定全局Python版本。

4.8.1.3. 從腳本

讓我們創建一個測試Python腳本 - 創建一個名為``hello.py``的文件,其中包含以下內容

#! python
import sys
sys.stdout.write("hello from Python %s\n" % (sys.version,))

從hello.py所在的目錄中,執行以下命令:

py hello.py

您應該注意到最新的Python 2.x安裝的版本號已列印出來。現在嘗試將第一行更改為:

#! python3

現在,重新執行該命令應該列印最新的Python 3.x信息。與上面的命令行示例一樣,你可以更明確的指定版本限定符。假設您安裝了Python 2.6,請嘗試將第一行更改為 #! python2.6 ,你會發現列印的2.6版本信息。

請注意,與交互式使用不同,裸「python」將使用您已安裝的Python 2.x的最新版本。這是為了向後兼容及兼容Unix,其中命令 python 通常是指Python 2。

4.8.1.4. 從檔案關聯

安裝時應該將啟動器與Python文件(即 .py, .pyw, .pyc 文件)相關聯。這意味著當您從Windows資源管理器中雙擊其中一個文件時,將使用啟動程序,因此您可以使用上述相同的工具讓腳本指定應使用的版本。

這樣做的主要好處是,單個啟動程序可以同時支持多個Python版本,具體取決於第一行的內容。

4.8.2. Shebang Lines

如果腳本文件的第一行以 #! 開頭,則稱為 "shebang" 行。Linux和其他類Unix作業系統都有對這些行的本機支持,它們通常在此類系統上用來指示應該如何執行腳本。這個啟動器允許在Windows上對Python腳本使用相同的工具,上面的示例演示了它們的使用。

為了允許Python腳本中的shebang行在Unix和Windows之間移植,該啟動器支持許多「虛擬」命令來指定要使用的解釋器。支持的虛擬命令是:

/usr/bin/env python

/usr/bin/python

/usr/local/bin/python

python

例如,如果腳本開始的第一行

#! /usr/bin/python

將找到並使用默認的Python。因為在Unix上編寫的許多Python腳本已經有了這一行,你應該發現這些腳本可以由啟動器使用而無需修改。如果您在Windows上編寫一個新腳本,希望在Unix上有用,那麼您應該使用以 /usr 開頭的一個shebang行。

任何上述虛擬命令都可以顯式指定版本(可以僅為主要版本,也可以為主要版本加次要版本)作為後綴。此外,可以通過在次要版本之後添加 「-32」 來請求 32 位版本。例如 /usr/bin/python2.7-32 將請求使用 32 位 python 2.7。

3.7 版新加入: 從python啟動程序3.7開始,可以通過「-64」後綴調用64位版本。此外,可以指定沒有次要的主要和架構(即 /usr/bin/python3-64 )。

shebang line的 /usr/bin/env 形式還有一個特殊屬性。在尋找已安裝的Python解釋器之前,此表單將搜索可執行文件 PATH 以獲取Python可執行文件。這對應於Unix中 env 程序的行為,該程序將在 PATH 執行搜索。

4.8.3. shebang lines 的參數

shebang lines 還可以指定要傳遞給Python解釋器的其他選項。例如,如果你有一個shebang lines :

#! /usr/bin/python -v

然後Python將以 -v 選項啟動

4.8.4. 自定義4.8.4.1. 通過INI文件自定義

啟動程序將搜索兩個.ini文件 - 在當前用戶的 "application data" 目錄中搜索 py.ini (即通過使用 CSIDL_LOCAL_APPDATA 調用Windows函數 SHGetFolderPath 返回的目錄)以及與啟動器位於同一目錄中的 py.ini 。相同的.ini文件既用於啟動器的「控制臺」版本(即 py.exe),也用於「windows」版本(即pyw.exe)

「應用程式目錄」中指定的自定義優先於可執行文件旁邊.ini文件的自定義,因此對啟動程序旁邊的.ini文件不具有寫訪問權限的用戶可以覆蓋該全局.ini文件中的命令。

4.8.4.2. 自定義默認的Python版本

在某些情況下,可以在命令中包含版本限定符,以指定命令將使用哪個Python版本。版本限定符以主版本號開頭,可以選擇後跟 ('.') 和次版本說明符。此外,可以通過添加 "-32" 或 「-64」 來指定是請求32位還是64位實現。

例如,一個shebang line 的 #!python 行沒有版本限定符,而 #!python3 有一個版本限定符,它只指定一個主要版本。

如果在命令中找不到版本限定符,則可以設置環境變量 PY_PYTHON 以指定默認版本限定符。如果未設置,則默認為 "3"。該變量可以指定能通過命令行傳遞的任何值,比如 "3", "3.7", "3.7-32" 或 "3.7-64"。(請注意 "-64" 選項僅適用於 Python 3.7 或更高版本中包含的啟動器。)

如果沒有找到次要版本限定符,則可以設置環境變量 PY_PYTHON{major} (其中 {major} 是上面確定的當前主要版本限定符)以指定完整版本。如果沒有找到這樣的選項,啟動器將枚舉已安裝的Python版本並使用為主要版本找到的最新次要版本,儘管不能保證,但該版本可能是該系列中最新安裝的版本。

在安裝了相同(major.minor)Python版本的32位和64位的64位Windows上,64位版本將始終是首選。對於啟動程序的32位和64位實現都是如此 -- 這對於啟動程序32位和64位都是正確的 -- 如果可用,32位啟動程序將傾向於執行指定版本的64位Python安裝。這樣就可以預測啟動器的行為,只知道PC上安裝了哪些版本,而不考慮它們的安裝順序(即,不知道32位或64位版本的Python和相應的啟動器是否是最後安裝)。如上所述,可以在版本說明符上使用可選的「-32」或「-64」後綴來更改此行為。

範例:

如果沒有設置相關選項,命令 python 和 python2 將使用安裝的最新Python 2.x版本,命令 python3 將使用最新安裝的Python 3.x.

命令 python3.1 和 python2.7 根本不會查閱任何選項,因為版本已完全指定。

如果 PY_PYTHON=3 ,命令``python`` 和 python3 都將使用最新安裝的Python 3版本。

如果 PY_PYTHON=3.1-32 ,命令 python 將使用3.1的32位實現,而命令 python3 將使用最新安裝的Python(PY_PYTHON根本沒有被視為指定了主要版本。)

如果 PY_PYTHON=3 且 PY_PYTHON3=3.1,命令 python 和 python3 都將特別使用3.1

除環境變量外,還可以在啟動程序使用的.INI文件中配置相同的設置。INI文件中的部分稱為 [defaults] ,鍵名稱將與沒有前導 PY_ 前綴的環境變量相同(並注意INI文件中的鍵名不區分大小寫) 。)環境變量的內容將覆蓋INI文件中指定的內容。

例如:

[defaults]
python=3.1

[defaults]
python=3
python3=3.1

4.8.5. 診斷

如果設置了環境變量 PYLAUNCH_DEBUG (任何值),啟動器將診斷信息列印到stderr(即:控制臺)。雖然這些信息同時具有冗長 和 簡潔性,但它應該允許您查看Python的版本、選擇特定版本的原因以及用於執行目標Python的確切命令行。

4.9. 查找模塊

Python通常將其庫(以及您的site-packages文件夾)存儲在安裝目錄中。因此,如果您已將Python安裝到 C:\Python\ ,則默認庫將駐留在 C:\Python\Lib\ 中,第三方模塊存儲在 C:\Python\Lib\site-packages\ 。

若要完全覆蓋 sys.path ,請創建與DLL(python37._pth)或可執行文件(「python._pth`」)同名的 ._pth 文件,並為要添加的每個路徑指定一行 sys.path 。基於DLL名稱的文件覆蓋基於可執行文件的文件,如果需要,可以為加載運行時的任何程序限制路徑。

當文件存在時,將忽略所有註冊表和環境變量,啟用隔離模式,並且:除非文件中的一行指定 import site ,否則不會導入 site 。以 # 開頭的空白路徑和行將被忽略。每個路徑可以是絕對的或相對於文件的位置。不允許使用除 site 以外的導入語句,並且不能指定任意代碼。

請注意,當指定 import site 時, .pth 文件(沒有前導下劃線)將由 site 模塊正常處理。

當找不到 ._pth 文件時, sys.path 是如何在Windows上填充的:

在開始時,添加一個空條目,該條目對應於當前目錄。

如果環境變量 PYTHONPATH 存在,如 環境變量 中所述,則接下來添加其條目。請注意,在Windows上,此變量中的路徑必須用分號分隔,以區別於驅動器標識符中使用的冒號( C:\ 等)。

額外的 "應用程式路徑" 可以作為子鍵被同時添加到註冊表 HKEY_CURRENT_USER 和 HKEY_LOCAL_MACHINE 分支下的 \SOFTWARE\Python\PythonCore{version}\PythonPath 中。以分號分隔的路徑字符串作為默認值的子鍵將導致每個路徑都被添加到 sys.path 中。(請注意所有已知的安裝程序都只使用 HKLM,因此 HKCU 通常為空。)

如果設置了環境變量 PYTHONHOME ,則將其假定為 「Python 主目錄」 。否則,主Python可執行文件的路徑用於定位 「landmark 文件」 ( Lib\os.py 或 pythonXY.zip )以推斷 」Python 主目錄「 。如果找到了Python主目錄,則基於該文件夾將相關的子目錄添加到 sys.path (Lib , plat-win 等)。否則,核心Python路徑是從存儲在註冊表中的PythonPath構造的。

如果找不到Python Home,也沒有指定 PYTHONPATH 環境變量,並且找不到註冊表項,則使用具有相對條目的默認路徑(例如 .\Lib; .\plat-win 等等)。

如果在主可執行文件旁邊或在可執行文件上一級的目錄中找到 pyvenv.cfg 文件,則以下變體適用:

最終這所有的結果為:

運行 python.exe ,或主Python目錄中的任何其他.exe(安裝版本,或直接來自PCbuild目錄)時,推導出核心路徑,並忽略註冊表中的核心路徑。始終讀取註冊表中的其他「應用程式路徑」。

當Python託管在另一個.exe(不同的目錄,通過COM嵌入等)時,將不會推斷出「Python Home」,因此使用了來自註冊表的核心路徑。始終讀取註冊表中的其他「應用程式路徑」。

如果Python找不到它的主目錄並且沒有註冊表值(凍結的.exe,一些非常奇怪的安裝設置),那麼你會得到一條帶有一些默認但相對的路徑的路徑。

對於那些想要將Python捆綁到其應用程式或發行版中的人,以下建議將防止與其他安裝衝突:

在您的可執行文件中包含一個 ._pth 文件,其中包含目錄。這將忽略註冊表和環境變量中列出的路徑,並忽略 site ,除非列出 import site 。

如果你在自己的可執行文件中加載 python3.dll 或 python37.dll ,在 Py_Initialize() 之前,要顯式調用 Py_SetPath() 或(至少) Py_SetProgramName()

清除 和/或 覆蓋 PYTHONPATH 並在啟動來自應用程式的 python.exe 之前設置 PYTHONHOME 。

如果您不能使用前面的建議(例如,您是一個允許人們直接運行 python.exe 的分發版),請確保安裝目錄中存在 landmark 文件 (Lib\os.py)。(請注意,在 ZIP 文件中不會檢測到該文件,但會檢測到正確命名的 ZIP 文件。)

這些將確保系統範圍安裝中的文件不會優先於與應用程式捆綁在一起的標準庫的副本。否則,用戶可能會在使用您的應用程式時遇到問題請注意,第一個建議是最好的,因為其他建議可能仍然容易受到註冊表和用戶站點包中的非標準路徑的影響。

3.6 版更變:3.6 版後已棄用:

在 Modules (不是 PythonPath )下的註冊表中指定的模塊可以通過以下方式導入 importlib.machinery.WindowsRegistryFinder 。在Windows上,此查找程序在3.6.0及更早版本的可用,但可能需要在將來顯式添加到 sys.meta_path

4.10. 附加模塊

儘管Python的目標是在所有平臺中都可移植,但是Windows有一些獨特的特性。在標準庫和外部都有一些模塊和代碼片段在使用這些特性。

特定於Windows的標準模塊記錄在 Windows系統相關模塊 中。

4.10.1. PyWin32

Mark Hammond 的 PyWin32 模塊是一組用於高級Windows特定支持的模塊。這包括以下實用程序:

PythonWin 是PyWin32附帶的一個示例MFC應用程式。它是一個內置調試器的可嵌入IDE。

也參考

Win32 How Do I...?

由 Tim Golden 所著

Python and COM

由 David 與 Paul Boddie 所著

4.10.2. cx_Freeze

cx_Freeze 是一個 distutils 的擴展 (參見 擴展 Distutils),它將 Python 腳本包裝成可執行的 Windows 程序 (*.exe 文件)。完成此操作後,你就可以分發你的應用程式而無需用戶安裝 Python。

4.10.3. WConio

由於Python的高級終端處理層 curses 僅限於類Unix系統,因此Windows還有一個獨立的庫:用於Python的Windows 控制臺 I/O .

WConio 是Turbo-C的 CONIO.H 裝飾器,用於創建文本用戶界面。

4.11. 編譯 Python 在 Windows

如果你想自己編譯CPython,首先要做的是獲取 source. 。您可以下載最新版本的原始碼,也可以重新籤出 checkout. 。

原始碼樹包含Microsoft Visual Studio 2015的構建解決方案和項目文件,它是用於構建官方Python版本的編譯器。這些文件位於 PCbuild 目錄中。

檢查 PCbuild/readme.txt 以獲取有關構建過程的一般信息。

有關擴展模塊,請參閱 在 Windows 上構建 C 和 C++ 擴展 。

也參考

Python + Windows + distutils + SWIG + gcc MinGW

或 "Creating Python extensions in C/C++ with SWIG and compiling them with MinGW gcc under Windows" 或 "Installing Python extension with distutils and without Microsoft Visual C++" by Sébastien Sauvage, 2003

4.12. 其他平臺

隨著Python的不斷發展,不再支持以前曾經支持的一些平臺(由於缺少用戶或開發人員)。檢查 PEP 11 了解所有不支持的平臺的詳細信息。

有關具有預編譯安裝程序平臺的詳細信息,請參閱 Python for Windows

相關焦點

  • Python3.6安裝教程
    本教程記錄在Windows環境下安裝Python3.6的過程。
  • Python黑帽編程1.3 Python運行時與包管理工具
    由於原書很多地方過於簡略,筆者根據實際測試情況和最新的技術發展對內容做了大量的變更,當然最重要的是個人偏好。教程同時提供圖文和視頻教程兩種方式,供不同喜好的同學選擇。0.2 前言前兩節裡,我們完成了作業系統和工具的安裝。
  • Python | mac下安裝python3
    /Versions自己安裝由於系統自帶的版本較低,且後期在使用時主要是用python3,所以要安裝python3:1、使用brew安裝【推薦】:brew install python3python3 --version    # 查看當前版本brew info python    # 查看
  • Python 3.7.0軟體下載和安裝教程|兼容WIN10
    (本教程僅供學習交流使用) 安裝前須知:1.安裝全程須斷開電腦網路,否則安裝不成功;2.Python 3.7.0適用於WIN7/8/10系統,親測可用! Python 3.7.0 WIN10 64位安裝步驟:1.根據自己電腦系統的位數選擇對應的Python 3.7.0軟體安裝包到電腦磁碟根目錄或英文路徑文件夾下,小編這裡下載到Python37文件夾下,然後滑鼠右擊選擇【解壓到當前文件夾】,這裡以64位版本為例
  • Mac系統Python、PyCharm安裝及使用方法詳解
    python -V2、開始安裝(這裡我們使用神器homebrew)#安裝前先搜索一下是否已經存在python3的包:brew search python3#已經存在,我們可以直接安裝了:brew install python3#出現如下報錯 Error: An unexpected error occurred during the
  • Python數據分析實戰(2)Python,Anaconda安裝
    1.Python版本Python分為3.X和2.X兩個大版本。Python的3.0版本,常被稱為Python 3000,或簡稱Py3k。相對於Python的早期版本,這是一個較大的升級。為了不帶入過多的累贅,Python 3.X在設計的時候沒有考慮向下相容,許多針對早期Python版本設計的程式都無法在Python 3.X上正常執行。大多數第三方庫都正在努力地相容Python 3.X版本。
  • 關於python安裝pip及crypto庫
    關於python安裝pip及crypto庫Capture The Flag (CTF) 常用到的crypto庫,有很多技術人員不知道怎麼安裝
  • 【python專欄】Anaconda下載與安裝、PyCharm下載與安裝
    3.可以使用Anaconda作為解釋器和package管理工具,使用pycharm作為文本編輯器。兩者搭配使用,這樣不僅免去了package安裝與管理的麻煩,而且編程體驗會更好。Anaconda的下載與安裝1.Anaconda同樣是開源且免費的,根據電腦系統(windows/mac/linux)去下載所需要的類型和版本,獲取軟體的方法有:方法一:登陸清華大學開源軟體鏡像站點:(推薦)htps:/miros.tuna.tsinghua.edu.cn/aconda/rchive
  • 加速深度學習在線部署,TensorRT安裝及使用教程
    2 TensorRT安裝tensorrt的安裝方式很簡單,只需要注意一些環境的依賴關係就可以,我們以tensorrt5.0.4版本為例,參考官網安裝教程https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html,這裡簡單總結一下步驟tensorrt支持的環境和python版本如表所示
  • 【Win】Windows 10 安裝教程
    ]: windows[軟體下載連結]:https://pan.baidu.com/s/1ccNwUQOl0u1VS2y8VJPb_g提取碼:m7fl [提示]:若下載連結失效,獲取最新下載連結請到公眾號『晨夕加油站』後臺回復!
  • Python安裝教程
    3.滑鼠右擊【python-3.9.2-amd64.exe】選擇【以管理員身份運行】。9.按下鍵盤上的快捷鍵【win+r】。10.輸入【cmd】然後點擊【確定】。11.輸入【python】後按【Enter】鍵測試是否運行,若顯示當前python版本 【3.9.2】則表示安裝成功。
  • Mac用brew安裝python3
    Mac下沒有python3,接下來用brew對python3進行安裝。brew安裝完brew後,首先用brew檢查電腦中是否安裝有python3如果沒有python3,則接著用brew對python3進行安裝成功。
  • TensorFlow 安裝手冊 — 使用 pip 安裝 TensorFlow
    可用安裝包tensorflow — 僅限 CPU 的當前版本(推薦給初學者)tensorflow - gpu — 支持 GPU 的當前版本(Ubuntu 和 Windows)tf - nightly — Nightly 僅為 CPU 構建(不穩定)tf - nightly - gpu — 使用 GPU
  • Win 10 中使用 Python 碰到的奇怪現象
    最近在使用 Python 的時候發生了很奇怪的現象:從命令行執行 python.exe 並不會進入 REPL,似乎也沒有其他反應,然而稍等片刻,會看到系統彈出 Windows Store 頁面,並定位到 Python App 的詳情頁。
  • 【Python教程】pypal數據可視化
    利用雷達圖分析了一下周圍餐廳的評分例子五:可視化展示世界人口地圖(處理json數據)例子六:利用github提供的接口,呈現GitHub上Python項目的受歡迎程度(使用Web API分析數據)環境linux系統(ubuntu18.04)/ windows系統可以打開ubuntu子系統pycharm編輯器(windows如何安裝pycharm社區版本)Python 3.6.9(windows如何安裝python環境)pip3 9.0.1pypalrequests 安裝Pygal
  • 【Python教程】pygal數據可視化
    有的時候,實現題目的要求很簡單,甚至參考資料裡就有,但是背後的思考和親手去實踐卻是任務最關鍵的一部分。在學習這些資料時,要多思考,多提問,多質疑。相信通過和小夥伴們的交流,能讓你的學習事半功倍。pypal的數據可視化, 包括例子一: 利用餅圖分析繪製圖靈編程俱樂部學員各星座人數比例12星座的比例例子二:利用折線圖分析希文小朋友,每科考試成績趨勢例子三:利用簡單直方圖展示擲骰子1000次6個面的出現次數例子四:豆豆小朋友吃飯不知道吃什麼?
  • Windows 10 官網原版鏡像系統安裝教程
    首先製作U盤作為系統啟動盤(將windows系統下載到啟動盤中)進入Windows PE系統(詳情參照Windows PE系統安裝教程)安裝系統會將c盤格式化,如果有重要文件請提前備份。 2.雙擊打開桌面上的「Windows安裝器」。【因老毛桃版本不停更新,如果桌面上沒有Windows安裝器的話,請點擊左下角開始菜單,選擇程序--->系統安裝--->Windows安裝器】
  • Python 安裝沒有 pip的解決方法(適用Linux MacOS Windows)
  • Linux系統Python配置MySQL詳細教程
    Linux系統中沒有mysql-python的rpm安裝包,這個資源需要從網上下載:目前主流使用Python2.6或Python2.7版本,下載為 MySQL-python-1.2.3c1.tar.gz
  • U盤安裝Windows 10 系統教程
    如果系統不能夠正常進入的情況下,建議採用U盤安裝Win的方法來重裝系統,下面我們來看下U盤裝Win系統的詳細步驟。安裝此系統前需製作好裝機版U盤啟動盤,可在軟體目錄中點擊「PE製作教程「查看製作教程。安裝注意:1、此系統為官網原版系統(三合一)即包含教育版、企業版和專業版。