欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

怎么用VScode代碼調(diào)試Python

這篇文章將為大家詳細(xì)講解有關(guān)怎么用VScode代碼調(diào)試Python,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元定興做網(wǎng)站,已為上家服務(wù),為定興各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

Python擴(kuò)展支持許多類型的Python應(yīng)用程序的調(diào)試,包括以下一般功能:

  • 觀看窗口

  • 評(píng)估表達(dá)式

  • 當(dāng)?shù)厝?/p>

  • 參數(shù)

  • 擴(kuò)大孩子

  • 斷點(diǎn)

  • 條件斷點(diǎn)

  • 暫停(進(jìn)入)正在運(yùn)行的程序

  • 自定義啟動(dòng)目錄

要熟悉這些常規(guī)功能,請(qǐng)查看VS Code調(diào)試文章。本文僅討論那些特定于Python的注意事項(xiàng)。

選擇一個(gè)配置

要選擇調(diào)試配置,請(qǐng)選擇邊欄中的調(diào)試視圖,然后從下拉列表中選擇一個(gè)選項(xiàng):

怎么用VScode代碼調(diào)試Python

在調(diào)試時(shí),狀態(tài)欄顯示左下角的當(dāng)前配置,當(dāng)前的調(diào)試解釋器位于右側(cè)。選擇配置會(huì)顯示列表,您可以從中選擇不同的配置:

怎么用VScode代碼調(diào)試Python

默認(rèn)情況下,調(diào)試器使用與python.pythonPathVS Code其他功能相同的設(shè)置。要使用不同的解釋器,請(qǐng)pythonPath在調(diào)試器設(shè)置中設(shè)置該值。或者,在狀態(tài)欄上選擇指定的解釋器以選擇不同的解釋器。

注:調(diào)試器設(shè)置不支持相對(duì)路徑,包括依賴主python.pythonPath設(shè)置時(shí)。要解決此問題,請(qǐng)使用環(huán)境變量,或者創(chuàng)建一個(gè)變量,例如${workspaceFolder}解析到您的項(xiàng)目文件夾,然后在該路徑中使用該變量,如in "python.pythonPath": "${workspaceFolder}/venv/bin/python"

要查看所有配置,請(qǐng)launch.json通過選擇配置下拉列表旁邊的齒輪圖標(biāo)打開:

怎么用VScode代碼調(diào)試Python

下一節(jié)將介紹默認(rèn)或標(biāo)準(zhǔn)的“Python:當(dāng)前文件”配置。本文還介紹了調(diào)試特定應(yīng)用程序類型下的其他配置。

注意:如果您想嘗試新的實(shí)驗(yàn)性調(diào)試器,請(qǐng)參閱Issue 538(GitHub)上的說明。

標(biāo)準(zhǔn)配置和選項(xiàng)

標(biāo)準(zhǔn)配置為launch.json

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

以下各節(jié)介紹各種設(shè)置的自定義配置。

name

提供出現(xiàn)在VS Code下拉列表中的調(diào)試配置的名稱。

type

標(biāo)識(shí)要使用的調(diào)試器的類型; 將此設(shè)置留給pythonPython代碼。

request

指定開始調(diào)試的模式:

  • launch:在中指定的文件上啟動(dòng)調(diào)試器 program

  • attach:將調(diào)試器附加到已經(jīng)運(yùn)行的進(jìn)程。有關(guān)示例,請(qǐng)參閱遠(yuǎn)程調(diào)試。

program

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

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

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

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

pythonPath

指向Python解釋器用于調(diào)試目的。如果未指定,則默認(rèn)為python.pythonPath設(shè)置中標(biāo)識(shí)的解釋器,這相當(dāng)于使用該值${config:python.pythonPath}。要使用不同的解釋器,請(qǐng)改為指定其路徑。

您可以通過將指定特定于平臺(tái)的路徑pythonPath命名的父對(duì)象中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程序的參數(shù),例如:

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

stopOnEntry

設(shè)置為true時(shí),在調(diào)試程序的第一行中斷開調(diào)試器。如果省略(默認(rèn))或設(shè)置為false,則調(diào)試器將程序運(yùn)行到第一個(gè)斷點(diǎn)。

console

指定如何顯示程序輸出。

顯示輸出的地方
"none"VS代碼調(diào)試控制臺(tái)
"integratedTerminal" (默認(rèn))VS代碼集成終端
"externalTerminal"獨(dú)立控制臺(tái)窗口

cwd

指定調(diào)試器的當(dāng)前工作目錄,它是代碼中使用的任何相對(duì)路徑的基礎(chǔ)文件夾。如果省略,默認(rèn)為${workspaceFolder}(在VS代碼中打開的文件夾)。

作為一個(gè)例子,說${workspaceFolder}包含一個(gè)py_code文件夾包含app.py,和一個(gè)data文件夾包含salaries.csv。如果啟動(dòng)調(diào)試器py_code/app.py,則數(shù)據(jù)文件的相對(duì)路徑根據(jù)以下值而變化cwd

CWD數(shù)據(jù)文件的相對(duì)路徑
省略或 ${workspaceFolder}data/salaries.csv
${workspaceFolder}/py_code../data/salaries.csv
${workspaceFolder}/datasalaries.csv

debugOptions

一系列可能包含以下內(nèi)容的附加選項(xiàng):

選項(xiàng)描述
"RedirectOutput"(默認(rèn))使調(diào)試器將程序的所有輸出打印到VS Code調(diào)試輸出窗口中。如果省略此設(shè)置,則所有程序輸出不顯示在調(diào)試器輸出窗口中。該選項(xiàng)在使用時(shí)通常會(huì)被省略,"console": "integratedTerminal"或者"console": "externalTerminal"因?yàn)椴恍枰谡{(diào)試控制臺(tái)中復(fù)制輸出。
"DebugStdLib"啟用標(biāo)準(zhǔn)庫函數(shù)的調(diào)試。
"Django"激活特定于Django Web框架的調(diào)試功能。
"Sudo"與...一起使用時(shí)"console": "externalTerminal",允許調(diào)試需要提升的應(yīng)用程序。捕獲密碼需要使用外部控制臺(tái)。
"Pyramid"在調(diào)試金字塔應(yīng)用程序時(shí)使用。

env

為除調(diào)試器始終繼承的系統(tǒng)環(huán)境變量之外的調(diào)試器進(jìn)程設(shè)置可選的環(huán)境變量。

envFile

包含環(huán)境變量定義的文件的可選路徑。請(qǐng)參閱配置Python環(huán)境 - 環(huán)境變量定義文件。

調(diào)試特定的應(yīng)用程序類型

配置下拉菜單為常規(guī)應(yīng)用程序類型提供了各種不同的選項(xiàng):

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

遠(yuǎn)程調(diào)試和Google App Engine還需要具體步驟。有關(guān)調(diào)試單元測試(包括nosetest)的詳細(xì)信息,請(qǐng)參閱單元測試。

要調(diào)試需要管理員權(quán)限的應(yīng)用程序,請(qǐng)?jiān)谥惺褂?code>"console": "externalTerminal"并包含“Sudo” debugOptions

燒瓶調(diào)試

{
    "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"
    ]
},

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

遠(yuǎn)程調(diào)試

遠(yuǎn)程調(diào)試允許您在VS代碼本地執(zhí)行一個(gè)程序,同時(shí)在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行它。在這種情況下,必須在兩臺(tái)計(jì)算機(jī)上都有源代碼。

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

  2. 在兩臺(tái)計(jì)算機(jī)的源代碼中,添加以下行,用適當(dāng)?shù)拿艽a替換_my_secret_以驗(yàn)證遠(yuǎn)程調(diào)試,并用合適的IP地址(或)和端口號(hào)替換_地址_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. 僅在遠(yuǎn)程計(jì)算機(jī)上,取消注釋上面的最后一行。您希望在開發(fā)機(jī)器上保留注釋行,以確保兩臺(tái)機(jī)器上的源代碼與行符合。

  4. 啟動(dòng)遠(yuǎn)程程序。

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

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

通過SSH進(jìn)行調(diào)試

視窗:

  1. 使用sshd_config或類似命令在遠(yuǎn)程計(jì)算機(jī)上啟用ssh端口轉(zhuǎn)發(fā)。

  2. 建立一個(gè)PuTTY SSH隧道:

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

    2. 在“隧道”屏幕上,使用本地模式,源端口(本地計(jì)算機(jī)上的入口點(diǎn)端口)可能與目標(biāo)端口(服務(wù)器上的端點(diǎn))不同。

    3. 目標(biāo)地址應(yīng)該是本地主機(jī)或127.0.0.1地址(這是遠(yuǎn)程SSH服務(wù)器用于建立隧道的地址)。

Linux的:

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

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

最后,啟動(dòng)程序并按照上一節(jié)所述附加調(diào)試器。

Google App Engine調(diào)試

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

怎么用VScode代碼調(diào)試Python

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

  2. tasks.json使用以下內(nèi)容創(chuàng)建一個(gè)文件:

    {
        "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上,將第一項(xiàng)內(nèi)容替換args為安裝Google App Engine的路徑(上面的源代碼中顯示的路徑適用于MacOS)。

  4. 在您的項(xiàng)目根目錄下創(chuàng)建一個(gè)名為pydev_startup.py的文件,其中包含以下內(nèi)容,并按照說明修改:

    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(遠(yuǎn)程調(diào)試)配置作為模板創(chuàng)建配置。確保秘密和端口值與上面源代碼中的內(nèi)容匹配。

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

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

  8. 一旦看到消息“Google App Engine已啟動(dòng),準(zhǔn)備好連接調(diào)試器”,請(qǐng)使用遠(yuǎn)程調(diào)試配置啟動(dòng)VS Code調(diào)試器。

  9. 在需要的地方設(shè)置斷點(diǎn),然后啟動(dòng)瀏覽器以啟動(dòng)應(yīng)用程序。

故障排除

調(diào)試器可能無法正常工作的原因很多。調(diào)試控制臺(tái)經(jīng)常會(huì)顯示具體原因,但有兩個(gè)具體原因如下:

  • python可執(zhí)行文件的路徑不正確:請(qǐng)檢查pythonPath用戶設(shè)置中的值。

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

    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

關(guān)于“怎么用VScode代碼調(diào)試Python”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

網(wǎng)站標(biāo)題:怎么用VScode代碼調(diào)試Python
網(wǎng)頁網(wǎng)址:http://chinadenli.net/article28/jighcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管響應(yīng)式網(wǎng)站微信公眾號(hào)手機(jī)網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名