Trang này được dịch bởi Cloud Translation API.
Switch to English

Định cấu hình mã Visual Studio

Visual Studio Code (VSCode) là một trình soạn thảo mã miễn phí, chạy trên hệ điều hành macOS, Linux và Windows. Nó có hỗ trợ công cụ thanh lịch hỗ trợ phát triển Python & C ++, gỡ lỗi trực quan, tích hợp với git và nhiều tính năng thú vị khác. Do dễ sử dụng và quản lý tiện ích mở rộng, nó là một trình soạn thảo tuyệt vời để phát triển TensorFlow IO. Tuy nhiên, một số nỗ lực là cần thiết để cấu hình nó đúng cách. Vì cấu hình VSCode rất linh hoạt, nó cho phép các nhà phát triển biên dịch dự án bằng cách sử dụng bazel và chạy mã dưới trình gỡ lỗi Python và C ++. Việc thiết lập công cụ cơ sở có thể khác nhau dựa trên hệ thống hoạt động, nhưng cách tiếp cận cấu hình phải tương tự.

Phần mở rộng

Để cài đặt tiện ích mở rộng, hãy nhấp vào biểu tượng chế độ xem tiện ích mở rộng (Tiện ích mở rộng) trên Thanh bên hoặc sử dụng phím tắt Ctrl + Shift + X. Sau đó tìm kiếm từ khóa bên dưới.

  • C / C ++ - Phần mở rộng C ++ chính thức của Microsoft
  • Python - Phần mở rộng Python chính thức của Microsoft
  • Gói mở rộng Python - một phần mở rộng hữu ích khác để phát triển Python

Biên soạn dự án

TensorFlow IO được biên dịch bằng lệnh xây dựng bazel:

bazel build -s --verbose_failures --compilation_mode dbg //tensorflow_io/...

Xem tệp README của dự án để biết chi tiết về cách thiết lập môi trường phát triển trong Ubuntu. Cờ --compilation_mode dbg ở đây chỉ ra rằng mã nhị phân được tạo ra phải có các ký hiệu gỡ lỗi. Khi bạn có thể biên dịch dự án từ dòng lệnh, bạn cũng có thể cấu hình VSCode để có thể gọi cùng một lệnh.

Mở View-> Command Pallete ( Ctrl + Shift + P ) và bắt đầu nhập: "Tasks: Configure Build Task". Nếu bạn làm điều này lần đầu tiên, trình soạn thảo sẽ đề xuất tạo tệp task.json. Khi bạn đã có nó, hãy dán json sau:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build TF.IO (Debug)",
            "type": "shell",
            "command": "bazel build -s --verbose_failures --compilation_mode dbg //tensorflow_io/...",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": []
        }
    ]
}

Bây giờ, bạn có thể nhấn Ctrl + Shift + B và VSCode sẽ sử dụng lệnh trên để xây dựng dự án. Nó sử dụng cửa sổ đầu cuối của riêng mình, nơi tất cả các liên kết đều có thể nhấp được. Vì vậy, khi xảy ra lỗi biên dịch, bạn mở tệp tương ứng và điều hướng đến dòng chỉ bằng cách nhấp vào liên kết trong cửa sổ đầu cuối.

Gỡ lỗi dự án

Gỡ lỗi mã Python là điều không bình thường, hãy làm theo tài liệu chính thức để tìm ra cách định cấu hình VSCode để kích hoạt điều đó: https://code.visualstudio.com/docs/python/debugging

Tuy nhiên, gỡ lỗi mã C ++ yêu cầu GDB phải được cài đặt trên hệ thống của bạn. Nếu bạn có tập lệnh python bq_sample_read.py sử dụng thư viện tensorflow-io và thường được thực thi theo cách sau:

python3 bq_sample_read.py --gcp_project_id=...

Bạn có thể thực thi nó trong GDB bằng cách sử dụng như sau:

gdb -ex r --args python3 bq_sample_read.py --gcp_project_id=...

Nếu ứng dụng gặp sự cố trong giai đoạn mã C ++, bạn có thể chạy backtrace trong bảng điều khiển GDB để xử lý lỗi stacktrace.

VSCode cũng có hỗ trợ trình gỡ lỗi GDB. Nó cho phép thêm các điểm ngắt, quan sát giá trị của các biến và thực hiện từng bước qua mã. Để thêm cấu hình gỡ lỗi, nhấn biểu tượng Chế độ xem gỡ lỗi (Debug) trên Thanh bên, hoặc sử dụng phím tắt Ctrl + Shift + D. Tại đây, nhấn vào mũi tên xuống nhỏ bên cạnh nút phát và chọn "Thêm cấu hình ...". Bây giờ nó sẽ tạo một tệp launch.json , vui lòng thêm cấu hình sau:

{
    "name": "(gdb) Launch",
    "type": "cppdbg",
    "request": "launch",
    "program": "/usr/bin/python3",
    "args": ["bq_sample_read.py", "--gcp_project_id=..."],
    "stopAtEntry": false,
    "cwd": "${workspaceFolder}",
    "environment": [
        {
            /* path to your bazel-bin folder */
            "name": "TFIO_DATAPATH",
            "value": "/usr/local/google/home/io/bazel-bin"
        },
        {
            /* other env variables to use */
            "name": "GOOGLE_APPLICATION_CREDENTIALS",
            "value": "..."
        }
    ],
    "externalConsole": false,
    "MIMode": "gdb",
    "setupCommands": [
        {
            "description": "Enable pretty-printing for gdb",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
        }
    ]
}

Nếu mọi thứ được cấu hình đúng, bạn sẽ có thể thực hiện Run -> Start Debugging ( F5 ) hoặc Run -> Run Without Debugging ( Ctrl + F5 ). Điều này sẽ chạy mã của bạn trong trình gỡ lỗi:

Trình gỡ lỗi VSCode

Để đơn giản hóa hơn nữa trải nghiệm gỡ lỗi, bạn có thể định cấu hình GDB để bỏ qua các thư viện C ++ tiêu chuẩn. Điều này cho phép bạn bỏ qua mã mà bạn không quan tâm. Để thực hiện việc này, hãy tạo một tệp ~/.gdbinit với nội dung sau:

skip -gfi /usr/include/c++/*/*/*
skip -gfi /usr/include/c++/*/*
skip -gfi /usr/include/c++/*

Định dạng tệp

Bạn luôn có thể định dạng lại tệp C ++ hoặc Python bằng Nhấp chuột phải -> Định dạng tài liệu ( Ctrl + Shift + I ), nhưng VSCode sử dụng quy ước kiểu khác. May mắn thay, nó rất dễ dàng để thay đổi.

Đối với định dạng Python, hãy xem https://donjayamanne.github.io/pythonVSCodeDocs/docs/formatting/

Để định dạng C ++, hãy làm như sau:

  • Đi tới Tùy chọn -> Cài đặt
  • Tìm kiếm "C_Cpp.clang_format_fallbackStyle"
  • Sửa đổi trực tiếp file:setting.json bằng cách thêm nội dung sau
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google}"