在 Visual Studio 中安裝 Python 解譯器的偵錯符號
本文提供在 Visual Studio 中下載和整合 Python 解譯器偵測符號的步驟。
為了提供完整的偵錯體驗,Visual Studio 中的混合模式 Python 偵錯程式,需要偵錯符號來讓 Python 直譯器解析大量的內部資料結構。 偵錯符號是在程式資料庫 (. pdb) 檔案中定義的。 例如,python27.dll 程式庫需要 python27.pdb 符號檔案,python36.dll 程式庫使用符號檔案 python36.pdb 等。 每個版本的解譯器也為各種模組提供符號檔案。
在 Visual Studio 2017 及更新版本中,Python 3 和 Anaconda 3 解譯器會自動安裝各自的符號,Visual Studio 會自動尋找符號。
在 Visual Studio 2015 及更早版本中,或對於其他解譯器,您需要單獨下載符號,然後將 Visual Studio 指向這些檔案。
當 Visual Studio 檢測到缺少必需的符號時,將顯示一個對話方塊提示您執行操作。 當您啟動混合模式偵錯工作階段時,通常會看到對話方塊。 此對話方塊包含 Open symbol settings 對話方塊連結,可開啟 >Tools Options 對話方塊至 Debugging > Symbols 頁籤,以及此檔案文章的連結。
必要條件
- 已安裝 Visual Studio 並支援 Python 工作負載。 如需詳細資訊,請參閱在 Visual Studio 中安裝 Python 支援。
檢查您的解譯器版本
符號在 Python 的小版本和 32 位元和 64 位元版本之間不同。 確認您的 Python 版本和版本很重要,以確保您的直譯器有正確的符號。
若要檢查正在使用哪個 Python 解譯器:
在 Solution Explorer,展開專案下的 Python Environments 節點。
找出目前環境的名稱 (以粗體顯示)。
在環境名稱上按一下滑鼠右鍵,然後選取 [在這裡開啟命令提示字元]。
會開啟指令提示視窗,顯示目前環境的安裝位置。
輸入下列指令來啟動 python:
python.exe
執行程式會顯示已安裝的 Python 版本,並指示它是是 32 位元還是 64 位元:
載入符號
以下步驟說明如何下載 Python 解譯器所需的符號。
對於 Python 3.5 和更新版本,請透過 Python 安裝程式獲取偵錯符號。
選取 Custom 安裝,然後選取 Next。
在 Advanced Options 頁面上,選取 Download debugging symbols 和 Download debug binaries:
符號檔案 (.pdb) 位於根安裝資料夾中。 個別模組的符號檔案也會放在 DLLs 資料夾中。
Visual Studio 會自動尋找這些符號。 無需採取進一步的步驟。
對於 Python 3.4.x 和更早版本,符號能夠做為可下載的
.zip
檔案從官方發行版或 Enthought Canopy 取得。下載您需要的符號檔案。
重要
請務必選取與您安裝的 Python 版本和建置 (32 位元或 64 位元) 對應的符號檔案。
將元件檔案解壓縮至 Python 資料夾內的本機資料夾,例如 Symbols。
解壓縮檔案後,下一步是將 Visual Studio 指向符號。
對於其他第三方 Python 發行版 (例如 ActiveState Python),請與該發行版的作者聯絡,並要求他們為您提供符號。
WinPython 整合標準的 Python 解譯器而不作任何變更。 您可以使用官方 WinPython 發行版中的符號來取得對應的版本號碼。
將 Visual Studio 指向符號
如果您個別下載元件,請依照下列步驟讓 Visual Studio 瞭解這些元件。
注意
如果您使用 Python 3.5 或更新版本安裝程式安裝元件,Visual Studio 會自動尋找元件。 您不必完成本節中的步驟。
選取 Tools >Options,然後開啟 >Debugging Symbols 標籤。
選取工具列上的 Add (加號)。
輸入您解壓縮下載符號的資料夾路徑。 此位置是
python.pdb
檔案的所在位置,如 c:\python34\Symbols,如下圖所示。選取 [確定]。
偵錯工作階段期間,Visual Studio 也可能會提示您輸入 Python 解譯器的原始程式檔位置。 如果您下載來源檔案 (例如從 python.org/downloads/),您可以將 Visual Studio 指向下載的檔案。
符號快取選項
Tools >Options DebuggingSymbols 對話>方塊也包含配置符號快取的選項。 Visual Studio 使用符號快取功能來建立從線上來源取得的符號的本機快取。
Python 解譯器符號不需要這些功能,因為符號已經在本地存在。 如需詳細資訊,請參閱 指定 Visual Studio 偵錯工具中的符號和來源檔案。
存取正式發行的下載
下表列出正式 Python 版本發行版本的下載資訊。
Python 版本 | 下載 |
---|---|
3.5 和更新版本 | 透過 Python 安裝程式來安裝符號。 |
3.4.4 | 32 位元 - 64 位元 |
3.4.3 | 32 位元 - 64 位元 |
3.4.2 | 32 位元 - 64 位元 |
3.4.1 | 32 位元 - 64 位元 |
3.4.0 | 32 位元 - 64 位元 |
3.3.5 | 32 位元 - 64 位元 |
3.3.4 | 32 位元 - 64 位元 |
3.3.3 | 32 位元 - 64 位元 |
3.3.2 | 32 位元 - 64 位元 |
3.3.1 | 32 位元 - 64 位元 |
3.3.0 | 32 位元 - 64 位元 |
2.7.18 | 32 位元 - 64 位元 |
2.7.17 | 32 位元 - 64 位元 |
2.7.16 | 32 位元 - 64 位元 |
2.7.15 | 32 位元 - 64 位元 |
2.7.14 | 32 位元 - 64 位元 |
2.7.13 | 32 位元 - 64 位元 |
2.7.12 | 32 位元 - 64 位元 |
2.7.11 | 32 位元 - 64 位元 |
2.7.10 | 32 位元 - 64 位元 |
2.7.9 | 32 位元 - 64 位元 |
2.7.8 | 32 位元 - 64 位元 |
2.7.7 | 32 位元 - 64 位元 |
2.7.6 | 32 位元 - 64 位元 |
2.7.5 | 32 位元 - 64 位元 |
2.7.4 | 32 位元 - 64 位元 |
2.7.3 | 32 位元 - 64 位元 |
2.7.2 | 32 位元 - 64 位元 |
2.7.1 | 32 位元 - 64 位元 |
使用 Enthought Canopy 符號
Enthought Canopy 從 1.2 版開始為其二進位檔提供偵錯符號。 這些符號會自動與發佈一起安裝。
若要使用符號,請手動將包含符號的資料夾新增至符號路徑,如 將 Visual Studio 指向符號中所述。
對於 Canopy 的一般每使用者安裝,符號位於下列資料夾中:
- 64 位元版本:%UserProfile%\AppData\Local\Enthought\Canopy\User\Scripts
- 32 位元版本:%UserProfile%\AppData\Local\Enthought\Canopy32\User\Scripts
Enthought Canopy 1.1 及更早版本以及 Enthought Python Distribution (EPD),不提供解譯器符號。 這些版本與混合模式偵錯不相容。
相關內容
- 在 Visual Studio 偵錯工具中指定符號和來源檔案
- 同時偵錯 Python 和 C++ (混合模式偵錯)