Hướng dẫn how do you pass command line arguments in python vscode? - làm thế nào để bạn chuyển các đối số dòng lệnh trong python vscode?
Tôi đang chạy một chương trình Python có một số đối số dòng lệnh. Làm thế nào tôi có thể cung cấp các đối số này khi tôi đang xây dựng một chương trình trong mã Visual Studio? Show
Hỏi ngày 14 tháng 10 năm 2016 lúc 7:03Oct 14, 2016 at 7:03
CerebrouCerebroucerebrou 4.94114 Huy hiệu vàng46 Huy hiệu bạc73 Huy hiệu đồng14 gold badges46 silver badges73 bronze badges 1 Bạn có thể chuyển các đối số vào chương trình bằng cách xác định các đối số trong cài đặt 3 của Launch.json như được định nghĩa dưới đây:
Thông tin thêm có thể được tìm thấy trên trang web tài liệu tại đây: https://github.com/donjayamanne/pythonvscode/wiki/debugging#args
Cory Kramer Huy hiệu vàng 110K1515 gold badges158 silver badges208 bronze badges Đã trả lời ngày 14 tháng 10 năm 2016 lúc 11:15Oct 14, 2016 at 11:15
DondonDon 6.4142 Huy hiệu vàng24 Huy hiệu bạc33 Huy hiệu đồng2 gold badges24 silver badges33 bronze badges 6 Nếu bạn sử dụng tiện ích mở rộng mã Runner, bạn có thể thêm phần sau vào cài đặt của mình (nhấp vào biểu tượng '{}' ở góc trên cùng bên phải để lấy tệp sempl.json): "Code -Runner.executormap": {"Python": "$ pythonpath -u $ fullfilename xxx"} trong đó xxx là đối số của bạn. Đây là một thay đổi toàn cầu vì vậy bạn phải thay đổi khi làm việc trên các tệp khác. Đã trả lời ngày 18 tháng 5 năm 2019 lúc 13:37May 18, 2019 at 13:37
1
Một cách để làm điều đó trong phiên bản 2.0.0 là:
Đã trả lời ngày 29 tháng 3 năm 2019 lúc 14:16Mar 29, 2019 at 14:16
CerebrouCerebroucerebrou 4.94114 Huy hiệu vàng46 Huy hiệu bạc73 Huy hiệu đồng14 gold badges46 silver badges73 bronze badges 1 Bạn có thể chuyển các đối số vào chương trình bằng cách xác định các đối số trong cài đặt 3 của Launch.json như được định nghĩa dưới đây:Thông tin thêm có thể được tìm thấy trên trang web tài liệu tại đây: https://github.com/donjayamanne/pythonvscode/wiki/debugging#argsAug 3 at 16:00
1 Phần mở rộng Python hỗ trợ gỡ lỗi một số loại ứng dụng Python. Để biết một đoạn ngắn của gỡ lỗi cơ bản, hãy xem Hướng dẫn - Cấu hình và chạy trình gỡ lỗi. Cũng xem hướng dẫn bình. Cả hai hướng dẫn đều thể hiện các kỹ năng cốt lõi như thiết lập các điểm dừng và bước qua mã. Đối với các tính năng gỡ lỗi chung như kiểm tra các biến, thiết lập các điểm dừng và các hoạt động khác không phụ thuộc vào ngôn ngữ, xem lại so với gỡ lỗi mã. Bài viết này chủ yếu đề cập đến các cấu hình gỡ lỗi cụ thể của Python, bao gồm các bước cần thiết cho các loại ứng dụng cụ thể và gỡ lỗi từ xa. Khởi tạo cấu hìnhCấu hình điều khiển hành vi của mã trong phiên gỡ lỗi. Các cấu hình được xác định trong tệp 4 được lưu trữ trong thư mục 5 trong không gian làm việc của bạn.
Để khởi tạo cấu hình gỡ lỗi, trước tiên hãy chọn chế độ xem chạy trong thanh bên:Run view in the sidebar: Nếu bạn chưa có bất kỳ cấu hình nào được xác định, bạn sẽ thấy một nút để chạy và gỡ lỗi và liên kết để tạo tệp cấu hình (Launch.json):Run and Debug and a link to create a configuration (launch.json) file: Để tạo tệp 4 với cấu hình Python, hãy thực hiện các bước sau:
Các chi tiết về các thuộc tính cấu hình được đề cập sau trong bài viết này theo cấu hình và tùy chọn tiêu chuẩn. Các cấu hình khác cũng được mô tả trong bài viết này theo các loại ứng dụng cụ thể gỡ lỗi. Cấu hình bổ sungTheo mặc định, mã VS chỉ hiển thị các cấu hình phổ biến nhất được cung cấp bởi tiện ích mở rộng Python. Bạn có thể chọn các cấu hình khác để bao gồm trong 4 bằng cách sử dụng lệnh Thêm cấu hình được hiển thị trong danh sách và trình chỉnh sửa 4. Khi bạn sử dụng lệnh, mã VS sẽ nhắc bạn với danh sách tất cả các cấu hình có sẵn (hãy chắc chắn chọn tùy chọn Python):Add Configuration command shown in the list and the 4 editor. When you use the command, VS Code prompts you with a list of all available configurations (be sure to select the Python option):Chọn tệp đính kèm bằng ID Process, một mang lại kết quả sau:Attach using Process ID one yields the following result: Xem gỡ lỗi các loại ứng dụng cụ thể để biết chi tiết về tất cả các cấu hình này. Trong quá trình gỡ lỗi, thanh trạng thái hiển thị cấu hình hiện tại và trình thông dịch gỡ lỗi hiện tại. Chọn cấu hình sẽ đưa ra một danh sách mà bạn có thể chọn một cấu hình khác: Theo mặc định, trình gỡ lỗi sử dụng cùng một trình thông dịch được chọn cho không gian làm việc của bạn, giống như các tính năng khác của tiện ích mở rộng Python cho mã VS. Để sử dụng một trình thông dịch khác để gỡ lỗi cụ thể, hãy đặt giá trị cho 0 trong 4 cho cấu hình trình gỡ lỗi hiện hành. Thay phiên, chọn trình thông dịch được đặt tên trên thanh trạng thái để chọn một trình thông dịch khác.Gỡ lỗi cơ bảnNếu bạn chỉ quan tâm đến việc gỡ lỗi tập lệnh Python, cách đơn giản nhất là chọn nút xuống bên cạnh nút chạy trên trình chỉnh sửa và chọn Debug Python trong Terminal.Debug Python File in Terminal. Nếu bạn đang tìm cách gỡ lỗi một ứng dụng web bằng Flask, Django hoặc Fastapi, tiện ích mở rộng Python sẽ cung cấp các cấu hình gỡ lỗi được tạo động dựa trên cấu trúc dự án của bạn trong tùy chọn cấu hình gỡ lỗi tự động, thông qua chế độ xem chạy và gỡ lỗi.Show all automatic debug configurations option, through the Run and Debug view. Nhưng nếu bạn đang tìm cách gỡ lỗi các loại ứng dụng khác, bạn có thể khởi động trình gỡ lỗi thông qua chế độ xem chạy bằng cách nhấp vào nút chạy và gỡ lỗi.Run view by clicking on the Run and Debug button. Khi không có cấu hình nào được đặt, bạn sẽ được cung cấp một danh sách các tùy chọn gỡ lỗi. Tại đây, bạn có thể chọn tùy chọn thích hợp để nhanh chóng gỡ lỗi mã của bạn. Hai tùy chọn phổ biến là sử dụng cấu hình tệp Python để chạy tệp Python hiện đang mở hoặc sử dụng tệp đính kèm bằng cấu hình ID Process để gắn trình gỡ lỗi vào một quy trình đã chạy.Python File configuration to run the currently open Python file or to use the Attach using Process ID configuration to attach the debugger to a process that is already running. Để biết thông tin về việc tạo và sử dụng các cấu hình gỡ lỗi, hãy xem các cấu hình khởi tạo và các phần cấu hình bổ sung. Khi một cấu hình được thêm vào, nó có thể được chọn từ danh sách thả xuống và bắt đầu sử dụng nút bắt đầu gỡ lỗi.Start Debugging button. Dòng lệnh gỡ lỗiTrình gỡ lỗi cũng có thể được chạy từ dòng lệnh. Cú pháp dòng lệnh gỡ lỗi như sau:
Ví dụ, từ dòng lệnh, bạn có thể khởi động trình gỡ lỗi bằng một cổng được chỉ định (5678) và tập lệnh bằng cú pháp sau. Ví dụ này giả định tập lệnh dài và bỏ cờ 2, có nghĩa là tập lệnh sẽ không chờ đợi khách hàng đính kèm.
Sau đó, bạn sẽ sử dụng cấu hình sau để đính kèm từ phần mở rộng mã VS Python.
Nếu bạn muốn gỡ lỗi mã từ xa hoặc mã chạy trong thùng chứa Docker, trên máy từ xa hoặc container, bạn sẽ cần sửa đổi lệnh CLI trước đó để chỉ định máy chủ.
Tệp cấu hình liên quan sau đó sẽ trông như sau.
python -m debugpy --listen 5678 ./myscript.py 9Không bắt buộc. Đặt một thuộc tính gỡ lỗi phải được biết đến máy chủ gỡ lỗi trước khi máy khách kết nối. Các thuộc tính như vậy có thể được sử dụng trực tiếp trong cấu hình khởi chạy, nhưng phải được đặt theo cách này cho các cấu hình đính kèm. Ví dụ: nếu bạn không muốn máy chủ gỡ lỗi tự động tự tiêm vào các quy trình con được tạo bởi quy trình bạn đang gắn vào, hãy sử dụng { "name": "Python: Attach", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } 0.Lưu ý: 1 có thể được sử dụng để chuyển các đối số dòng lệnh cùng với ứng dụng được khởi chạy.
Bản gỡ lỗi tập lệnh từ xa với SSHGỡ lỗi từ xa cho phép bạn bước qua một chương trình cục bộ trong mã VS trong khi nó chạy trên một máy tính từ xa. Không cần thiết phải cài đặt mã vs trên máy tính từ xa. Để thêm bảo mật, bạn có thể muốn hoặc cần sử dụng kết nối an toàn, chẳng hạn như SSH, đến máy tính từ xa khi gỡ lỗi.
Các bước sau đây phác thảo quy trình chung để thiết lập một đường hầm SSH. Một đường hầm SSH cho phép bạn làm việc trên máy cục bộ của mình như thể bạn đang làm việc trực tiếp trên điều khiển từ xa theo cách an toàn hơn so với nếu một cổng được mở để truy cập công khai. Trên máy tính từ xa:
Trên máy tính cục bộ:
Bắt đầu gỡ lỗi Bây giờ một đường hầm SSH đã được thiết lập thành máy tính từ xa, bạn có thể bắt đầu gỡ lỗi.
Đặt tùy chọn cấu hìnhKhi bạn lần đầu tiên tạo 4, có hai cấu hình tiêu chuẩn chạy tệp hoạt động trong trình chỉnh sửa trong thiết bị đầu cuối tích hợp (bên trong mã vs) hoặc thiết bị đầu cuối bên ngoài (ngoài mã VS): 3Các cài đặt cụ thể được mô tả trong các phần sau. Bạn cũng có thể thêm các cài đặt khác, chẳng hạn như 3, không bao gồm trong các cấu hình tiêu chuẩn.
4import debugpy # 5678 is the default attach port in the VS Code debug configurations. Unless a host and port are specified, host defaults to 127.0.0.1 debugpy.listen(5678) print("Waiting for debugger attach") debugpy.wait_for_client() debugpy.breakpoint() print('break on this line') 9Cung cấp tên cho cấu hình gỡ lỗi xuất hiện trong danh sách thả xuống mã VS. AllowTcpForwarding yes 0Xác định loại trình gỡ lỗi để sử dụng; Để lại bộ này thành 0 cho mã Python.AllowTcpForwarding yes 2Chỉ định chế độ để bắt đầu gỡ lỗi:
AllowTcpForwarding yes 4Cung cấp đường dẫn đủ điều kiện đến mô -đun nhập của chương trình Python (tệp khởi động). Giá trị 7, thường được sử dụng trong các cấu hình mặc định, sử dụng tệp hiện đang hoạt động trong trình soạn thảo. Bằng cách chỉ định một tệp khởi động cụ thể, bạn luôn có thể chắc chắn khởi chạy chương trình của mình với cùng một điểm nhập bất kể tệp nào được mở. Ví dụ: 5Bạn cũng có thể dựa vào một con đường tương đối từ gốc không gian làm việc. Ví dụ: nếu gốc là 8 thì bạn có thể sử dụng ví dụ sau: 6AllowTcpForwarding yes 9Cung cấp khả năng chỉ định tên của một mô -đun sẽ được gỡ lỗi, tương tự như đối số 2 khi chạy tại dòng lệnh. Để biết thêm thông tin, hãy xem Python.orgpython -m debugpy --listen 5678 ./myscript.py 0Con đường đầy đủ chỉ vào thông dịch viên Python sẽ được sử dụng để gỡ lỗi. Nếu không được chỉ định, cài đặt này mặc định cho trình thông dịch được chọn cho không gian làm việc của bạn, tương đương với việc sử dụng giá trị 2. Để sử dụng một trình thông dịch khác, thay vào đó chỉ định đường dẫn của nó trong thuộc tính 0 của cấu hình gỡ lỗi.Thay phiên, bạn có thể sử dụng biến môi trường tùy chỉnh được xác định trên mỗi nền tảng để chứa toàn bộ đường dẫn đến trình thông dịch Python để sử dụng, để không cần đường dẫn thư mục khác. Nếu bạn cần chuyển các đối số cho trình thông dịch Python, bạn có thể sử dụng thuộc tính 4.{ "name": "Python: Attach", "type": "python", "request": "attach", "port": 5678, "host": "localhost", "pathMappings": [ { "localRoot": "${workspaceFolder}", // Maps C:\Users\user1\project1 "remoteRoot": "." // To current working directory ~/project1 } ] } 4Chỉ định các đối số để chuyển cho trình thông dịch Python bằng cách sử dụng cú pháp 6.python -m debugpy
--listen | --connect
[ | --pid |
Giá trị | Nơi đầu ra được hiển thị |
---|---|
03 | VS Code Debug Console. Nếu 02 được đặt thành sai, không có đầu ra nào được hiển thị. If 02 is set to False, no output is displayed.
|
05 (mặc định) | VS mã Terminal tích hợp. Nếu 02 được đặt thành TRUE, đầu ra cũng được hiển thị trong bảng điều khiển gỡ lỗi. |
07 | Cửa sổ giao diện điều khiển riêng biệt. Nếu 02 được đặt thành TRUE, đầu ra cũng được hiển thị trong bảng điều khiển gỡ lỗi.. If 02 is set to True, output is also displayed in the debug console.
|
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200", 09
Có nhiều hơn một cách để định cấu hình nút chạy, sử dụng tùy chọn
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
09. Đặt tùy chọn thành "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
11, xác định rằng cấu hình nên được sử dụng khi gỡ lỗi các kiểm tra trong mã VS. Tuy nhiên, đặt tùy chọn thành "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
12, xác định rằng cấu hình chỉ nên được sử dụng khi truy cập nút Run Python File trên đầu bên phải của trình soạn thảo (bất kể tệp Python chạy hay gỡ lỗi Tùy chọn tệp Python mà nút cung cấp được sử dụng) . Lưu ý: Tùy chọn "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
09 không thể được sử dụng để khởi động trình gỡ lỗi thông qua F5 hoặc Run> Bắt đầu gỡ lỗi.Run button, using the "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
09 option. Setting the option to "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
11, defines that the configuration should be used when debugging tests in VS Code. However, setting the option to "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
12, defines that the configuration should only be used when accessing the Run Python File button on the top-right of the editor (regardless of
whether the Run Python File or Debug Python File options the button provides is used). Note: The "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
09 option can't be used to start the debugger through F5 or Run > Start Debugging."command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200", 14
Cho phép tải lại tự động của trình gỡ lỗi khi các thay đổi được thực hiện để mã sau khi thực thi trình gỡ lỗi đã đạt đến điểm dừng. Để kích hoạt tính năng này, đặt
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
15 như được hiển thị trong mã sau."command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
8*Lưu ý: Khi trình gỡ lỗi thực hiện tải lại, mã chạy trên nhập có thể được thực thi lại. Để tránh tình huống này, hãy cố gắng chỉ sử dụng nhập khẩu, hằng số và định nghĩa trong mô -đun của bạn, đặt tất cả mã vào các chức năng. Ngoài ra, bạn cũng có thể sử dụng kiểm tra
16.Note: When the debugger performs a reload, code that runs on import might be executed again. To avoid this situation, try to only use imports, constants, and definitions in your module, placing all code into functions. Alternatively, you can also use"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
16 checks."command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200", 17
Chỉ định xem có cho phép gỡ lỗi phụ hay không. Mặc định là
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
00, được đặt thành {
"name": "Python: Attach",
"type": "python",
"request": "attach",
"port": 5678,
"host": "localhost",
"pathMappings": [
{
"localRoot": "${workspaceFolder}", // Maps C:\Users\user1\project1
"remoteRoot": "." // To current working directory ~/project1
}
]
}
9 để bật. Để biết thêm thông tin, hãy xem gỡ lỗi đa mục tiêu."command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200", 20
Chỉ định thư mục làm việc hiện tại cho trình gỡ lỗi, đó là thư mục cơ sở cho bất kỳ đường dẫn tương đối nào được sử dụng trong mã. Nếu bị bỏ qua, mặc định là
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
21 (thư mục mở trong mã VS).Ví dụ, giả sử
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
21 chứa thư mục "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
23 chứa "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
24 và thư mục "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
25 chứa "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
26. Nếu bạn bắt đầu trình gỡ lỗi trên "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
27, thì các đường dẫn tương đối đến tệp dữ liệu thay đổi tùy thuộc vào giá trị của "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
20:
CWD | Đường dẫn tương đối đến tệp dữ liệu |
---|---|
Bỏ qua hoặc 21 | 30 |
31 | 32 |
33 | 26 |
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200", 02
Khi được đặt thành
{
"name": "Python: Attach",
"type": "python",
"request": "attach",
"port": 5678,
"host": "localhost",
"pathMappings": [
{
"localRoot": "${workspaceFolder}", // Maps C:\Users\user1\project1
"remoteRoot": "." // To current working directory ~/project1
}
]
}
9 (mặc định cho internalConsole), khiến trình gỡ lỗi in tất cả đầu ra từ chương trình vào cửa sổ đầu ra gỡ lỗi mã vs. Nếu được đặt thành "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
00 (mặc định cho IntegratedTerminal và ExternalTerminal), đầu ra chương trình không được hiển thị trong cửa sổ đầu ra trình gỡ lỗi.Tùy chọn này thường bị vô hiệu hóa khi sử dụng
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
38 hoặc "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
39 vì không cần phải sao chép đầu ra trong bảng điều khiển gỡ lỗi."command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200", 40
Khi bị bỏ qua hoặc đặt thành
{
"name": "Python: Attach",
"type": "python",
"request": "attach",
"port": 5678,
"host": "localhost",
"pathMappings": [
{
"localRoot": "${workspaceFolder}", // Maps C:\Users\user1\project1
"remoteRoot": "." // To current working directory ~/project1
}
]
}
9 (mặc định), chỉ giới hạn gỡ lỗi thành mã viết người dùng. Đặt thành "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
00 để cho phép gỡ lỗi các chức năng thư viện tiêu chuẩn."command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200", 43
Khi được đặt thành
{
"name": "Python: Attach",
"type": "python",
"request": "attach",
"port": 5678,
"host": "localhost",
"pathMappings": [
{
"localRoot": "${workspaceFolder}", // Maps C:\Users\user1\project1
"remoteRoot": "." // To current working directory ~/project1
}
]
}
9, kích hoạt các tính năng gỡ lỗi cụ thể cho khung web Django."command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200", 45
Khi được đặt thành
{
"name": "Python: Attach",
"type": "python",
"request": "attach",
"port": 5678,
"host": "localhost",
"pathMappings": [
{
"localRoot": "${workspaceFolder}", // Maps C:\Users\user1\project1
"remoteRoot": "." // To current working directory ~/project1
}
]
}
9 và được sử dụng với "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
39, cho phép gỡ lỗi các ứng dụng yêu cầu độ cao. Sử dụng bảng điều khiển bên ngoài là cần thiết để nắm bắt mật khẩu."command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200", 48
Khi được đặt thành
{
"name": "Python: Attach",
"type": "python",
"request": "attach",
"port": 5678,
"host": "localhost",
"pathMappings": [
{
"localRoot": "${workspaceFolder}", // Maps C:\Users\user1\project1
"remoteRoot": "." // To current working directory ~/project1
}
]
}
9, đảm bảo rằng một ứng dụng kim tự tháp được khởi chạy với lệnh "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
50 cần thiết."command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200", 51
Đặt các biến môi trường tùy chọn cho quá trình gỡ lỗi ngoài các biến môi trường hệ thống, mà trình gỡ lỗi luôn luôn kế thừa. Các giá trị cho các biến này phải được nhập dưới dạng chuỗi.
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200", 52
Đường dẫn tùy chọn đến một tệp chứa các định nghĩa biến môi trường. Xem cấu hình môi trường Python - Tệp định nghĩa biến môi trường.
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200", 53
Nếu được đặt thành
{
"name": "Python: Attach",
"type": "python",
"request": "attach",
"port": 5678,
"host": "localhost",
"pathMappings": [
{
"localRoot": "${workspaceFolder}", // Maps C:\Users\user1\project1
"remoteRoot": "." // To current working directory ~/project1
}
]
}
9, hãy cho phép gỡ lỗi mã được dán của Gevent Monkey."command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200", 55
Khi được đặt thành
{
"name": "Python: Attach",
"type": "python",
"request": "attach",
"port": 5678,
"host": "localhost",
"pathMappings": [
{
"localRoot": "${workspaceFolder}", // Maps C:\Users\user1\project1
"remoteRoot": "." // To current working directory ~/project1
}
]
}
9, kích hoạt các tính năng gỡ lỗi cụ thể cho khung khuôn mẫu Jinja.Điểm dừng và các điểm logpi
Tiện ích mở rộng Python hỗ trợ các điểm dừng và logpoint cho mã gỡ lỗi. Để biết một đoạn ngắn của việc gỡ lỗi cơ bản và sử dụng các điểm dừng, hãy xem Hướng dẫn - Cấu hình và chạy trình gỡ lỗi.
Điểm dừng có điều kiện
Điểm dừng cũng có thể được đặt để kích hoạt dựa trên các biểu thức, số lần truy cập hoặc kết hợp cả hai. Tiện ích mở rộng Python hỗ trợ số lượng hit là số nguyên, ngoài các số nguyên trước ==,>,> =,,
Gọi một điểm dừng trong mã
Trong mã Python của bạn, bạn có thể gọi
{
"name": "Python: Attach",
"type": "python",
"request": "attach",
"connect": {
"host": "localhost",
"port": 5678
}
}
6 tại bất kỳ điểm nào bạn muốn tạm dừng trình gỡ lỗi trong phiên gỡ lỗi.Xác thực điểm dừng
Tiện ích mở rộng Python tự động phát hiện các điểm dừng được đặt trên các dòng không thể thực hiện được, chẳng hạn như các câu lệnh
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
59 hoặc ở giữa của một câu lệnh đa dòng. Trong những trường hợp như vậy, chạy trình gỡ lỗi di chuyển điểm dừng đến dòng hợp lệ gần nhất để đảm bảo rằng thực thi mã dừng tại thời điểm đó.Gỡ lỗi các loại ứng dụng cụ thể
Dropdown cấu hình cung cấp các tùy chọn khác nhau cho các loại ứng dụng chung:
Cấu hình | Sự mô tả |
---|---|
Gắn | Xem gỡ lỗi từ xa trong phần trước. |
Django | Chỉ định 60, 61. Cũng thêm 62 để cho phép gỡ lỗi các mẫu HTML Django. |
Bình giữ nhiệt | Xem Debuging Debuging bên dưới. |
Gevent | Thêm 63 vào cấu hình thiết bị đầu cuối tích hợp tiêu chuẩn. |
Kim tự tháp | Xóa 4, thêm 65, thêm 66 để cho phép gỡ lỗi mẫu và thêm 67 để đảm bảo rằng chương trình được khởi chạy với lệnh 50 cần thiết. |
Quét | Chỉ định 69 và thêm 70. |
Watson | Chỉ định 71 và 72. |
Các bước cụ thể cũng cần thiết để gỡ lỗi từ xa và công cụ ứng dụng Google. Để biết chi tiết về các bài kiểm tra gỡ lỗi, xem xét nghiệm.
Để gỡ lỗi một ứng dụng yêu cầu các đặc quyền quản trị viên, hãy sử dụng
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
39 và "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
74.Bình gỡ lỗi
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
9Như bạn có thể thấy, cấu hình này chỉ định
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
75 và "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
76. Thuộc tính "command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
77 được sử dụng thay vì AllowTcpForwarding yes
4. .Cài đặt
"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
66 cũng cho phép gỡ lỗi cho công cụ tạo khuôn Jinja mặc định của Flask.Nếu bạn muốn chạy máy chủ phát triển của Flask ở chế độ phát triển, hãy sử dụng cấu hình sau:
python -m debugpy
--listen | --connect
[:]
[--wait-for-client]
[--configure- ]...
[--log-to ] [--log-to-stderr]
| -m | -c | --pid
[]...
0Xử lý sự cố
Có nhiều lý do tại sao trình gỡ lỗi có thể không hoạt động. Đôi khi bảng điều khiển gỡ lỗi cho thấy các nguyên nhân cụ thể, nhưng những lý do chính như sau:
Đường dẫn đến thực thi Python là không chính xác: Kiểm tra đường dẫn của trình thông dịch đã chọn của bạn bằng cách chạy lệnh Python: chọn phiên dịch và nhìn vào giá trị hiện tại:Python: Select Interpreter command and looking at the current value:
Có các biểu thức không hợp lệ trong cửa sổ đồng hồ: Xóa tất cả các biểu thức từ cửa sổ đồng hồ và khởi động lại trình gỡ lỗi.
Nếu bạn đang làm việc với một ứng dụng đa luồng sử dụng API luồng gốc (chẳng hạn như hàm Win32
82 chứ không phải API luồng Python), hiện tại cần phải bao gồm mã nguồn sau ở đầu trong bất kỳ tệp nào bạn muốn gỡ lỗi :"command": "python ${file} --model_type LeNet5 --prior_file conf1.json --epochs 200",
1python -m debugpy --listen | --connect [
:] [--wait-for-client] [--configure-]... ] [--log-to-stderr] | -m [| -c | --pid
]... Nếu bạn đang làm việc với một hệ thống Linux, bạn có thể nhận được thông báo lỗi "hết thời gian" khi cố gắng áp dụng trình gỡ lỗi cho bất kỳ quy trình chạy nào. Để ngăn chặn điều này, bạn có thể tạm thời chạy lệnh sau:Linux system, you may receive a "timed out" error message when trying to apply a debugger to any running process. To prevent this, you can temporarily run the following command:
2python -m debugpy --listen | --connect [
:] [--wait-for-client] [--configure-]... ] [--log-to-stderr] | -m [| -c | --pid
]...
Bước tiếp theo
- Môi trường Python - Kiểm soát trình thông dịch Python nào được sử dụng để chỉnh sửa và gỡ lỗi.
- Kiểm tra - Định cấu hình môi trường thử nghiệm và khám phá, chạy và gỡ lỗi các bài kiểm tra.
- Tài liệu tham khảo Cài đặt - Khám phá toàn bộ các cài đặt liên quan đến Python trong mã VS.
- General Debugging - Tìm hiểu về các tính năng gỡ lỗi của mã VS.
7/13/2022