與大多數Unix系統和服務不一樣,Windows不須要Python本地,所以不預安裝一個版本的Python。可是,CPython團隊已經爲每一個版本編譯Windows安裝程序(MSI軟件包)多年。php
隨着Python的不斷髮展,一些之前被支持的平臺再也不受支持(因爲缺少用戶或開發人員)。檢查PEP 11有關全部不受支持的平臺的詳細信息。html
有關 具備預編譯安裝程序的平臺的詳細信息,請參閱Python for Windows。python
也能夠看看web
除了標準的CPython分發以外,還有包含附加功能的修改包。如下是熱門版本及其主要功能的列表:編程
請注意,這些包極可能安裝舊版本的Python。windows
爲了無瑕疵地運行Python,您可能須要在Windows中更改某些環境設置。python2.7
Windows具備用於更改環境變量的內置對話框(如下指南適用於XP經典視圖):右鍵單擊計算機的圖標(一般位於桌面上並稱爲「個人計算機」),而後選擇 ide
總之,你的路徑是:函數
在此對話框中,您能夠添加或修改用戶和系統變量。要更改系統變量,您須要對計算機進行非受限訪問(即管理員權限)。工具
將變量添加到環境的另外一種方法是使用set 命令:
設置PYTHONPATH =%PYTHONPATH%; C:\ My_python_lib
要使此設置永久,您能夠將相應的命令行添加到您的autoexec.bat
。msconfig是此文件的圖形界面。
查看環境變量也能夠更直接地執行:命令提示符將自動擴展包裝成百分號的字符串:
echo%PATH%
諮詢集/?有關此行爲的詳細信息。
也能夠看看
更改版本3.3。
除了使用自動建立的Python解釋器的開始菜單項,您可能須要在命令提示符下啓動Python。從Python 3.3開始,安裝程序有一個選項爲您設置。
在「自定義Python 3.3」屏幕上,能夠啓用一個名爲「將python.exe添加到搜索路徑」的選項,讓安裝程序將您的安裝程序放入 %PATH%
。這容許你鍵入python來運行解釋器。所以,您還可使用命令行選項執行腳本,請參閱命令行文檔。
若是在安裝時未啓用此選項,則能夠隨時從新運行安裝程序以進行選擇。
另外一種方法是手動修改 %PATH%
使用Excursus中的說明:設置環境變量。你須要設置你的%PATH%
環境變量包括Python分發包的目錄,由來自其餘條目的分號分隔。一個示例變量可能以下所示(假設前兩個條目是Windows的默認值):
C:\ WINDOWS \ system32; C:\ WINDOWS; C:\ Python33
Python一般將其庫(以及從而您的site-packages文件夾)存儲在安裝目錄中。因此,若是你已經安裝了Python C:\Python\
,默認庫將駐留在C:\Python\Lib\
第三方模塊應該存儲在 C:\Python\Lib\site-packages\
。
這是如何sys.path
填充在Windows:
PYTHONPATH
存在,如環境變量中 所述,其條目將添加到下一個。請注意,在Windows上,此變量中的路徑必須用分號分隔,以便與驅動器標識符(C:\
等)中使用的冒號區分開。\SOFTWARE\Python\PythonCore\version\PythonPath
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
sys.path
PYTHONHOME
設置,它被假定爲「Python Home」。不然,主Python可執行文件的路徑用於定位一個「地標文件」(Lib\os.py
)來推導「Python Home」。若是找到一個Python家,相關子目錄加入到sys.path
(Lib
,plat-win
等)都是基於該文件夾上。不然,核心Python路徑是從存儲在註冊表中的PythonPath構造的。PYTHONPATH
在環境中指定,而且沒有找到註冊表條目,則使用具備相對條目的默認路徑(例如.\Lib;.\plat-win
,等)。這一切的最終結果是:
python.exe
或主Python目錄中的任何其餘.exe(安裝的版本,或直接從PCbuild目錄),核心路徑被推導,而且註冊表中的核心路徑被忽略。註冊表中的其餘「應用程序路徑」老是被讀取。從Python 3.3開始,Python包括一個啓動器,它有助於運行Python腳本。有關詳細信息,請參閱Python Launcher for Windows。
沒有安裝Python啓動程序,Python腳本(帶有擴展名的文件 .py
)將由python.exe默認執行。此可執行文件打開一個終端,即便程序使用GUI,該終端仍保持打開。若是你不想發生這種狀況,使用擴展.pyw
,這將致使腳本由pythonw.exe默認狀況下(兩個可執行文件都位於Python安裝目錄的頂層)。這將禁止啓動時的終端窗口。
你也能夠.py
使用pythonw.exe執行全部腳本,例如(可能須要管理權限)經過經常使用的工具來設置它:
啓動命令提示符。
將正確的文件組與.py
腳本相關聯:
assoc .py = Python.File
將全部Python文件重定向到新的可執行文件:
ftype Python.File = C:\ Path \ to \ pythonw.exe「%1」%*
新版本3.3。
Windows的Python啓動器是一個實用程序,它能夠幫助定位和執行不一樣的Python版本。它容許腳本(或命令行)指示特定Python版本的首選項,並將定位和執行該版本。
你應該確保啓動器在你的PATH - 根據它的安裝它可能已經在那裏,但檢查,以防萬一它不是。
從命令提示符處,執行如下命令:
py
你應該發現你安裝的最新版本的Python 2.x已經啓動了 - 它能夠正常退出,任何額外的命令行參數指定將直接發送到Python。
若是您安裝了多個版本的Python 2.x(例如,2.6和2.7),您將注意到Python 2.7已經啓動 - 要啓動Python 2.6,請嘗試如下命令:
py -2.6
若是您安裝了Python 3.x,請嘗試如下命令:
py -3
你應該找到最新版本的Python 3.x啓動。
讓咱們建立一個測試Python腳本 - 建立一個hello.py
用如下內容調用的文件
#!蟒蛇
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,嘗試改變第一行,你應該找到打印的2.6版本信息。#! python2.6
啓動程序應該已與Python的文件關聯(即.py
, .pyw
,.pyc
,.pyo
文件)安裝時。這意味着,當您從Windows資源管理器中雙擊其中一個文件時,將使用啓動器,所以您可使用上述相同的工具來讓腳本指定應使用的版本。
這樣作的主要好處是,單個啓動器能夠同時支持多個Python版本,具體取決於第一行的內容。
若是腳本文件的第一行開頭#!
,它被稱爲「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。因爲許多Python腳本編寫的工做在Unix上已經有這一行,你應該發現這些腳本能夠由啓動器使用沒有修改。若是你正在Windows上編寫一個新的腳本,你但願在Unix上有用,你應該使用一個shebang行開始/usr
。
shebang行還能夠指定要傳遞給Python解釋器的其餘選項。例如,若是你有一個shebang行:
#!/ usr / bin / python -v
而後Python將開始使用該-v
選項
兩個.ini文件將由
py.ini
當前用戶的「應用程序數據」目錄(即,經過調用帶有CSIDL_LOCAL_APPDATA的Windows函數SHGetFolderPath返回的目錄)和py.ini
與啓動器相同的目錄中的啓動器搜索。相同的.ini文件用於'控制檯'版本的啓動器(即py.exe)和'windows'版本(即pyw.exe)在「應用程序目錄」中指定的自定義將優先於可執行文件旁邊的一個,所以可能沒有對啓動器旁邊的.ini文件具備寫訪問權的用戶能夠覆蓋該全局.ini文件中的命令)
在某些狀況下,能夠在命令中包括版本限定符,以指示命令將使用哪一個版本的Python。版本限定符以主版本號開頭,能夠選擇性地後跟句點('。')和次要版本說明符。若是指定了minor限定符,則能夠可選地後跟「-32」,以指示使用該版本的32位實現。
例如,shebang行#!python
沒有版本限定符,而 #!python3
有一個版本限定符只指定主版本。
若是在命令中未找到版本限定符,則PY_PYTHON
能夠將環境變量 設置爲指定默認版本限定符 - 默認值爲「2」。注意,該值能夠僅指定主版本(例如「2」)或major.minor限定符(例如「2.6」),或甚至major.minor-32。
若是未找到次版本限定符,則能夠將環境變量 PY_PYTHON{major}
(其中{major}
是上面肯定的當前主版本限定符)設置爲指定完整版本。若是沒有找到這樣的選項,啓動器將枚舉已安裝的Python版本,並使用爲主要版本找到的最新次要版本,儘管不能保證,但多是該系列中最近安裝的版本。
在安裝了相同(major.minor)Python版本的32位和64位實現的64位Windows上,64位版本將始終是首選。這對於32位和64位的啓動器實現都是正確的--32位啓動器將更喜歡執行指定版本的64位Python安裝(若是可用)。這是由於能夠預測啓動器的行爲只知道什麼版本安裝在PC上,而不考慮它們被安裝的順序(即,不知道32或64位版本的Python和相應的啓動器是最後安裝)。如上所述,能夠在版本說明符上使用可選的「-32」後綴來更改此行爲。
例子:
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文件中。
例如:
PY_PYTHON=3.1
等效於INI文件,其中包含:[默認]
python = 3.1
PY_PYTHON=3
並PY_PYTHON3=3.1
等效於INI文件包含:[默認]
python = 3
python3 = 3.1
若是PYLAUNCH_DEBUG
設置了環境變量(到任何值),啓動程序將打印診斷信息到stderr(即到控制檯)。雖然這些信息同時冗長和簡潔,但它應該可讓你看到Python的版本是什麼,爲何選擇一個特定的版本,以及用於執行目標Python的精確命令行。
即便Python的目標是在全部平臺之間移植,有一些Windows獨有的功能。存在幾個模塊,在標準庫和外部和片斷中使用這些功能。
Windows特定標準模塊記錄在 MS Windows特定服務中。
該PyWin32模塊由Mark哈蒙德是先進的Windows特定的支持模塊的集合。這包括如下工具:
PythonWin是PyWin32附帶的示例MFC應用程序。它是一個帶有內置調試器的可嵌入IDE。
也能夠看看
cx_Freeze是一個distutils
擴展(參見擴展Distutils),它將Python腳本包裝到可執行的Windows程序(文件)中。當你這樣作,你能夠分發你的應用程序,而不須要你的用戶安裝Python。*.exe
若是你想本身編譯CPython,首先你應該作的是獲取 源代碼。您能夠下載最新版本的來源或只是抓一個新的結賬。
源代碼樹包含Microsoft Visual C ++的構建解決方案和項目文件,這是用於構建官方Python版本的編譯器。查看readme.txt
在他們各自的目錄:
目錄 | MSVC版本 | Visual Studio版本 |
---|---|---|
PC/VS9.0/ |
9.0 | 2008年 |
PCbuild/ |
10.0 | 2010 |
請注意,目錄中的任何構建目錄PC
不必定徹底支持。該PCbuild
目錄包含用於構建正式版本的編譯器的文件。
檢查PCbuild/readme.txt
構建過程的通常信息。
有關擴展模塊,請參閱Windows上的Building C和C ++擴展。
也能夠看看
也能夠看看