91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用VScode代碼調試Python

發布時間:2021-10-15 10:28:12 來源:億速云 閱讀:657 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關怎么用VScode代碼調試Python,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

Python擴展支持許多類型的Python應用程序的調試,包括以下一般功能:

  • 觀看窗口

  • 評估表達式

  • 當地人

  • 參數

  • 擴大孩子

  • 斷點

  • 條件斷點

  • 暫停(進入)正在運行的程序

  • 自定義啟動目錄

要熟悉這些常規功能,請查看VS Code調試文章。本文僅討論那些特定于Python的注意事項。

選擇一個配置

要選擇調試配置,請選擇邊欄中的調試視圖,然后從下拉列表中選擇一個選項:

怎么用VScode代碼調試Python

在調試時,狀態欄顯示左下角的當前配置,當前的調試解釋器位于右側。選擇配置會顯示列表,您可以從中選擇不同的配置:

怎么用VScode代碼調試Python

默認情況下,調試器使用與python.pythonPathVS Code其他功能相同的設置。要使用不同的解釋器,請pythonPath在調試器設置中設置該值。或者,在狀態欄上選擇指定的解釋器以選擇不同的解釋器。

注:調試器設置不支持相對路徑,包括依賴主python.pythonPath設置時。要解決此問題,請使用環境變量,或者創建一個變量,例如${workspaceFolder}解析到您的項目文件夾,然后在該路徑中使用該變量,如in "python.pythonPath": "${workspaceFolder}/venv/bin/python"

要查看所有配置,請launch.json通過選擇配置下拉列表旁邊的齒輪圖標打開:

怎么用VScode代碼調試Python

下一節將介紹默認或標準的“Python:當前文件”配置。本文還介紹了調試特定應用程序類型下的其他配置。

注意:如果您想嘗試新的實驗性調試器,請參閱Issue 538(GitHub)上的說明。

標準配置和選項

標準配置為launch.json

{
    "name": "Python: Current File",
    "type": "python",
    "request": "launch",
    "program": "${file}",
}

以下各節介紹各種設置的自定義配置。

name

提供出現在VS Code下拉列表中的調試配置的名稱。

type

標識要使用的調試器的類型; 將此設置留給pythonPython代碼。

request

指定開始調試的模式:

  • launch:在中指定的文件上啟動調試器 program

  • attach:將調試器附加到已經運行的進程。有關示例,請參閱遠程調試。

program

提供python程序入口模塊的完全限定路徑。推薦值為${file},它使用編輯器中的活動文件。但是,對于具有多個文件的程序,您可以指定程序的啟動文件。例如:

"program": "/Users/Me/Projects/PokemonGo-Bot/pokemongo_bot/event_handlers/__init__.py",

您還可以依賴工作區根目錄中的相對路徑。例如,如果根是/Users/Me/Projects/PokemonGo-Bot那么你可以使用以下內容:

"program": "${workspaceFolder}/pokemongo_bot/event_handlers/__init__.py",

pythonPath

指向Python解釋器用于調試目的。如果未指定,則默認為python.pythonPath設置中標識的解釋器,這相當于使用該值${config:python.pythonPath}。要使用不同的解釋器,請改為指定其路徑。

您可以通過將指定特定于平臺的路徑pythonPath命名的父對象中osxwindows或者linux。例如,PySpark的配置使用以下值:

"osx": {
    "pythonPath": "^\"\\${env:SPARK_HOME}/bin/spark-submit\""
},
"windows": {
    "pythonPath": "^\"\\${env:SPARK_HOME}/bin/spark-submit.cmd\""
},
"linux": {
    "pythonPath": "^\"\\${env:SPARK_HOME}/bin/spark-submit\""
},

args

指定傳遞給Python程序的參數,例如:

"args": [
    "--quiet", "--norepeat"
],

stopOnEntry

設置為true時,在調試程序的第一行中斷開調試器。如果省略(默認)或設置為false,則調試器將程序運行到第一個斷點。

console

指定如何顯示程序輸出。

顯示輸出的地方
"none"VS代碼調試控制臺
"integratedTerminal" (默認)VS代碼集成終端
"externalTerminal"獨立控制臺窗口

cwd

指定調試器的當前工作目錄,它是代碼中使用的任何相對路徑的基礎文件夾。如果省略,默認為${workspaceFolder}(在VS代碼中打開的文件夾)。

作為一個例子,說${workspaceFolder}包含一個py_code文件夾包含app.py,和一個data文件夾包含salaries.csv。如果啟動調試器py_code/app.py,則數據文件的相對路徑根據以下值而變化cwd

CWD數據文件的相對路徑
省略或 ${workspaceFolder}data/salaries.csv
${workspaceFolder}/py_code../data/salaries.csv
${workspaceFolder}/datasalaries.csv

debugOptions

一系列可能包含以下內容的附加選項:

選項描述
"RedirectOutput"(默認)使調試器將程序的所有輸出打印到VS Code調試輸出窗口中。如果省略此設置,則所有程序輸出不顯示在調試器輸出窗口中。該選項在使用時通常會被省略,"console": "integratedTerminal"或者"console": "externalTerminal"因為不需要在調試控制臺中復制輸出。
"DebugStdLib"啟用標準庫函數的調試。
"Django"激活特定于Django Web框架的調試功能。
"Sudo"與...一起使用時"console": "externalTerminal",允許調試需要提升的應用程序。捕獲密碼需要使用外部控制臺。
"Pyramid"在調試金字塔應用程序時使用。

env

為除調試器始終繼承的系統環境變量之外的調試器進程設置可選的環境變量。

envFile

包含環境變量定義的文件的可選路徑。請參閱配置Python環境 - 環境變量定義文件。

調試特定的應用程序類型

配置下拉菜單為常規應用程序類型提供了各種不同的選項:

組態描述
PySpark使用PySpark而不是默認解釋器運行程序,使用pythonPath前面在pythonPath選項下顯示的特定于平臺的值。
Python模塊替換program設置"module": "module.name"以調試特定模塊。使用此配置時,請將該值替換為所需的模塊名稱。
集成終端/控制臺"console": "integratedTerminal"選項添加到標準配置。
外部終端/控制臺"console": "externalTerminal"選項添加到標準配置。
Django的指定"program": "${workspaceFolder}/manage.py""args": ["runserver", "--noreload", "--nothreading"]添加“Django”和“RedirectOutput” debugOptions。請注意,在調試時不能自動重新加載Django應用程序。要調試Django HTML模板,請添加斷點templates
燒瓶請參閱下面的Flask調試。
金字塔刪除program,添加"args": ["${workspaceFolder}/development.ini"]并添加“金字塔”和“重定向輸出” debugOptions
沃森指定"program": "${workspaceFolder}/console.py""args": ["dev", "runserver", "--noreload=True"]
Scrapy指定"program": "~/.virtualenvs/scrapy/bin/scrapy",添加"console": "integratedTerminal"選項并添加"args": ["crawl", "specs", "-o", "bikes.json"]
附加(遠程調試)請參閱以下遠程調試。

遠程調試和Google App Engine還需要具體步驟。有關調試單元測試(包括nosetest)的詳細信息,請參閱單元測試。

要調試需要管理員權限的應用程序,請在中使用"console": "externalTerminal"并包含“Sudo” debugOptions

燒瓶調試

{
    "name": "Flask",
    "type": "python",
    "request": "launch",
    "stopOnEntry": false,
    "pythonPath": "${config:python.pythonPath}",
    "module": "flask",
    "cwd": "${workspaceFolder}",
    "env": {
        "FLASK_APP": "${workspaceFolder}/app.py"
    },
    "args": [
        "run",
        "--no-debugger",
        "--no-reload"
    ]
},

正如你所看到的,這個配置指定"stopOnEntry": false"env": {"FLASK_APP": "${workspaceFolder}/app.py"}"args": ["run", "--no-debugger","--no-reload"]。該"module": "flask"屬性被用來代替program

遠程調試

遠程調試允許您在VS代碼本地執行一個程序,同時在遠程計算機上執行它。在這種情況下,必須在兩臺計算機上都有源代碼。

  1. 在開發和遠程計算機上,安裝ptvsd 3.0.0(3.0.0 完全版本- 更高版本尚不支持#514)。

  2. 在兩臺計算機的源代碼中,添加以下行,用適當的密碼替換_my_secret_以驗證遠程調試,并用合適的IP地址(或)和端口號替換_地址_localhost

    import ptvsd
    ptvsd.enable_attach("my_secret", address = ('0.0.0.0', 3000))
    
    # Enable the line of source code below only if you want the application to wait until the debugger has attached to it
    #ptvsd.wait_for_attach()


  3. 僅在遠程計算機上,取消注釋上面的最后一行。您希望在開發機器上保留注釋行,以確保兩臺機器上的源代碼與行符合。

  4. 啟動遠程程序。

  5. 選擇附加(遠程調試)(下面)配置,然后修改remoteRoot為指向該程序的遠程計算機上的位置,并修改hostport以及secret在上面添加的源代碼中的值匹配。

    {
        "name": "Attach (Remote Debug)",
        "type": "python",
        "request": "attach",
        "localRoot": "${workspaceFolder}",
        "remoteRoot": "${workspaceFolder}",
        "port": 3000,
        "secret": "my_secret",
        "host": "localhost"
    }


通過SSH進行調試

視窗:

  1. 使用sshd_config或類似命令在遠程計算機上啟用ssh端口轉發。

  2. 建立一個PuTTY SSH隧道:

    1. 閱讀使用PuTTY設置SSH隧道(直到“打開會話”部分)。

    2. 在“隧道”屏幕上,使用本地模式,源端口(本地計算機上的入口點端口)可能與目標端口(服務器上的端點)不同。

    3. 目標地址應該是本地主機或127.0.0.1地址(這是遠程SSH服務器用于建立隧道的地址)。

Linux的:

  1. 跑 ssh -L sourceport:localhost:destinationport user@remoteaddress

接下來,驗證您可以在SSH會話中看到提示。然后打開VS Code并將端口配置為顯示在Tunnels屏幕上的調試端口。

最后,啟動程序并按照上一節所述附加調試器。

Google App Engine調試

Google App Engine自己啟動一個應用程序,因此在VS Code調試器中啟動它不是直接可能的。相反,我們需要在應用中使用ptvsd,然后以允許VS Code附加其調試器的模式啟動Google App Engine。

怎么用VScode代碼調試Python

  1. 下載ptvsd并將其文件解壓縮到工作文件夾中的ptvsd文件夾中。(如果使用不同的文件夾,請修改pydev_startup.py步驟4中創建的文件中的路徑)。

  2. tasks.json使用以下內容創建一個文件:

    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "Launch Google App Engine",
                "command": "python",
                "type": "shell",
                "args": [
                    "/usr/local/google_appengine/dev_appserver.py",
                    "--python_startup_script=${workspaceFolder}/pydev_startup.py",
                    "--automatic_restart=no",
                    "--max_module_instances=default:1",
                    "${workspaceFolder}/app.yaml"
                ]
            }
        ]
    }


  3. 在Windows和Linux上,將第一項內容替換args為安裝Google App Engine的路徑(上面的源代碼中顯示的路徑適用于MacOS)。

  4. 在您的項目根目錄下創建一個名為pydev_startup.py的文件,其中包含以下內容,并按照說明修改:

    import sys
    import os
    
    #Assuming that pdvsd is located in the working folder
    sys.path.append(os.getcwd())
    
    import ptvsd
    # Modify the secret and port number as desired; you're debugging locally so the values don't matter.
    # However, be sure the port is not blocked on your computer.
    ptvsd.enable_attach(secret = 'gae', address = ('0.0.0.0', 3000))
    
    #The debug server has started and you can now use VS Code to attach to the application for debugging
    print("Google App Engine has started, ready to attach the debugger")


  5. launch.json使用Attach(遠程調試)配置作為模板創建配置。確保秘密和端口值與上面源代碼中的內容匹配。

  6. 添加"preLaunchTask": "python"launch.json

  7. 從命令面板中,運行“ 運行構建任務”命令。這將打開任務輸出窗口,您可以在其中看到各種消息。

  8. 一旦看到消息“Google App Engine已啟動,準備好連接調試器”,請使用遠程調試配置啟動VS Code調試器。

  9. 在需要的地方設置斷點,然后啟動瀏覽器以啟動應用程序。

故障排除

調試器可能無法正常工作的原因很多。調試控制臺經常會顯示具體原因,但有兩個具體原因如下:

  • python可執行文件的路徑不正確:請檢查pythonPath用戶設置中的值。

  • 觀察窗口中的表達式無效(請參閱下面的示例):清除Watch窗口中的所有表達式并重新啟動調試器。

    Traceback (most recent call last):
      File ".../visualstudio_py_debugger.py", line 1646, in loop
        cmd()
      File ".../visualstudio_py_debugger.py", line 1918, in command_execute_code
        thread.run_on_thread(text, cur_frame, eid, frame_kind, repr_kind)
      File ".../visualstudio_py_debugger.py", line 1246, in run_on_thread
        self.schedule_work(lambda : self.run_locally(text, cur_frame, execution_id, frame_kind, repr_kind))
      File ".../visualstudio_py_debugger.py", line 1238, in schedule_work
        self.unblock()
      File ".../visualstudio_py_debugger.py", line 1234, in unblock
        self._block_lock.release()
    RuntimeError: release unlocked lock


關于“怎么用VScode代碼調試Python”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

保定市| 同江市| 翁牛特旗| 贵溪市| 和平县| 常宁市| 桐梓县| 班戈县| 明溪县| 工布江达县| 德令哈市| 赤峰市| 澳门| 天镇县| 重庆市| 临安市| 蓝山县| 信阳市| 双桥区| 蓬安县| 社旗县| 秭归县| 江华| 马龙县| 武山县| 贵定县| 高州市| 定边县| 和田县| 台江县| 信阳市| 延津县| 休宁县| 姜堰市| 容城县| 赣州市| 永康市| 武邑县| 鄱阳县| 永济市| 宾川县|