VSCode - cách đặt thư mục làm việc để gỡ lỗi


88

Tôi đang bắt đầu sử dụng vscode cho Python. Tôi có một chương trình thử nghiệm đơn giản. Tôi muốn chạy nó khi gỡ lỗi và tôi cần đặt thư mục làm việc cho quá trình chạy.

Làm thế nào / ở đâu để làm điều đó?

Câu trả lời:


142

Bình luận của @ SpeedCoder5 xứng đáng là một câu trả lời;

Cụ thể, bạn có thể chỉ định một thư mục làm việc động; (tức là bất kỳ thư mục nào chứa tệp Python hiện đang mở), sử dụng"cwd": "${fileDirname}"

nếu bạn đang sử dụng Python: Current File (Integrated Terminal)tùy chọn khi chạy Python, launch.jsontệp của bạn có thể trông giống như của tôi, bên dưới.

{
    "version": "0.2.0",
    "configurations": [
    {
            "name": "Python: Current File (Integrated Terminal)",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${fileDirname}"
    }, 

    //... other settings, but I modified the "Current File" setting above ...
}

[Hãy nhớ launch.jsontệp kiểm soát cài đặt chạy / gỡ lỗi của dự án mã Visual Studio của bạn] [1]; launch.jsontệp của tôi được tạo tự động bởi VS Code, trong thư mục của "Dự án mở" hiện tại của tôi. Tôi chỉ chỉnh sửa tệp thủ công để thêm "cwd": "${fileDirname}"vào như hình trên.

Hãy nhớ rằng launch.jsontệp có thể dành riêng cho dự án của bạn hoặc cụ thể cho thư mục của bạn, vì vậy hãy xác nhận rằng bạn đang chỉnh sửa đúng launch.json (xem nhận xét)

Nếu bạn không có launch.jsontệp, hãy thử cách này :

Để tạo tệp khởi chạy.json, hãy mở thư mục dự án của bạn trong Mã VS (Tệp> Mở Thư mục) và sau đó chọn biểu tượng Bánh răng định cấu hình trên thanh trên cùng của chế độ xem Gỡ lỗi. [1]: https://code.visualstudio.com/docs/editor/debugging#_launch-versus-attach-configurations


6
Có cách nào để đặt cài đặt này làm cài đặt mặc định cho tất cả các cấu hình không?
Serhiy

1
Hãy chắc chắn rằng bạn đang chỉnh sửa tệp launcher.json phù hợp! Theo kinh nghiệm của tôi VS Code tạo một thư mục .vscode trong mọi thư mục dự án tôi mở. Nếu hôm qua bạn mở thư mục parent / và hôm nay bạn mở thư mục parent / child /, bạn sẽ phải thực hiện các thay đổi thích hợp.
chrisinmtown

44

Tất cả những gì bạn cần làm là định cấu hình cài đặt cwd trong tệp launcher.json như sau:

{
    "name": "Python",
    "type": "python",
    "pythonPath":"python", 
    ....
    "cwd": "<Path to the directory>"
    ....
}

Thông tin thêm về điều này có thể được tìm thấy trên trang web tài liệu VS Code chính thức .


Yup, đã làm điều đó. Tôi thấy rằng nó thực sự là thư mục .vscode, vì vậy tôi nghĩ rằng tôi cần phải thêm \ .. vào cuối, phải không?
dùng1443098

Vâng, sẽ sửa đổi các câu trả lời phù hợp
Don

17
"cwd": "${fileDirname}"để chạy trong thư mục hiện tại của tập tin mã nguồn mở
SpeedCoder5

16

Cài đặt này giúp tôi:

{
  "type": "node",
  "request": "launch",
  "name": "Launch Program",
  "cwd": "${workspaceFolder}\\app\\js", // set directory here
  "program": "${workspaceFolder}\\app\\js\\server.js", // set start js here
}

9

Trong một số trường hợp, cũng có thể hữu ích khi đặt PYTHONPATHcùng với workspaceFolder:

{
    "name": "Python: Current File",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "console": "integratedTerminal",
    "cwd": "${workspaceFolder}",
    "env": {
        "PYTHONPATH": "${cwd}"
    }
}


3

Tôi đăng cấu hình mẫu này cho những người sử dụng TypeScript trên Node.js

trong dự án của tôi, máy chủ Node.js Tệp TypeScript của tôi nằm trong thư mục Application_ts và các tệp js đã biên dịch được tạo trong thư mục có tên Ứng dụng

bởi vì khi chúng tôi chạy ứng dụng của mình ở chế độ gỡ lỗi hoặc khởi động nó bình thường, chúng tôi nên bắt đầu từ thư mục Ứng dụng có chứa các tệp js để cấu hình dưới đây chạy gỡ lỗi từ thư mục gốc nơi application_ts của tôi cũng tồn tại và hoạt động hoàn hảo

{
  "version": "0.2.0",
  "configurations": [
    {
        "type": "node",
        "request": "launch",
        "name": "Debug TypeScript in Node.js",
        "program": "${workspaceRoot}\\Application\\app.js",
        "cwd": "${workspaceRoot}\\Application",
        "protocol": "inspector",
        "outFiles": [],
        "sourceMaps": true
    },        
    {
        "type": "node",
        "request": "attach",
        "name": "Attach to Process",
        "port": 5858,
        "outFiles": [],
        "sourceMaps": true
    }
 ]
}

1

Bạn có thể thiết lập thư mục làm việc hiện tại cho chương trình đã gỡ lỗi bằng cách sử dụng cwdđối số tronglaunch.json


Siêu! Đưa tôi đến bước tiếp theo. Bây giờ, cố gắng thực sự chạy chương trình trong gỡ lỗi. đây là đoạn code: print (os.getcwd ())
user1443098

Siêu! Đưa tôi đến bước tiếp theo. Tôi có một chữ lót: print (os.getcwd ()) mà tôi muốn gỡ lỗi. Tôi nhấp vào biểu tượng gỡ lỗi (hoặc nhấn F5), Có một dòng di chuyển nhỏ màu xanh lam bên dưới kéo xuống Môi trường. Tuy nhiên, mã của tôi không bao giờ chạy. Đoán là tôi đang thiếu một cái gì đó. Đó sẽ là gì?
user1443098

quên những cuối cùng hai, tôi đã nhận nó
user1443098

1
Điều tiếp theo. Sử dụng gợi ý, tôi ngạc nhiên khi thấy rằng $ {workspaceRoot} thực sự không phải là thư mục gốc mà là thư mục .vscode dưới thư mục gốc. Điều này có như mong đợi? Nếu vậy, tôi có thể thiết cwd đến $ {workspaceRoot} \ .. (trên cửa sổ Anway)
user1443098

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.