2009-12-14 34 views
29

Có cách nào để gỡ lỗi các script python không để vim trong hệ thống * nix (thực thi kịch bản, thiết lập các điểm ngắt, hiển thị các biến trong danh sách xem, vv) không?vim và python script gỡ lỗi

Trả lời

25

Sử dụng pdb:

import pdb 
def main(): 
    list = [1,2,3] 
    pdb.set_trace() 
    list = [2,3,4] 

if __name__ == '__main__': 
    main() 

Bây giờ chạy bằng :!python % và bạn sẽ đạt breakpoint bạn và có thể để gỡ lỗi tương tác như trong gdb.

+2

cũng có ipdb là một ipython nhỏ như vậy, vì vậy người dùng thân thiện hơn. – michael

+0

Tôi nhận được [lỗi này] (http://stackoverflow.com/questions/34914704/bdbquit-raised-when-debugging-python) –

-1

Có vẻ như bạn muốn sử dụng VIM như một IDE Python.

Tìm kiếm nhanh trên Google được tìm thấy thisthis ví dụ, với nhiều tính năng khác.

EDIT: Vâng, Ok, có vẻ như bạn đã tìm kiếm nhiều hơn tôi.

Tôi hy vọng người khác có một số ý tưởng.

+0

Tôi đã đọc bài viết này. VimPDB đã đề cập ở đó đã không làm việc cho tôi và bị phá vỡ mỗi lần tôi đã cố gắng sử dụng nó. – varnie

+0

thực sự vimpdb dường như bị hỏng ... – Oz123

-2

Từ những gì tôi biết, có một tùy chọn nữa: Bạn có thể sử dụng Eclipse + PyDev để quản lý dự án và Vim làm trình soạn thảo cho Eclipse. Bằng cách đó bạn có thể sử dụng tốt nhất của cả hai thế giới.

Ngoài ra, tôi chưa thử, nhưng bạn có thể thử this script.

0

Xem phần "Gỡ lỗi" trong this bài đăng trên blog. Nó cho thấy cách thiết lập F7 để thiết lập các điểm ngắt và Shift + F7 để loại bỏ các điểm ngắt. Nó cũng sử dụng pdb, như đã đề cập trước đây. Với một chút sửa đổi, bạn có thể thay thế việc sử dụng pdb bằng ipdb (pdb sử dụng ipython), điều này sẽ đẹp hơn rất nhiều khi sử dụng.

+2

liên kết bạn đã cung cấp bị hỏng ... – Oz123

6

Hãy thử pyclewn. Nó cho phép sử dụng vim làm giao diện người dùng cho pdb. Bạn có thể tạo/xóa các điểm ngắt, kiểm soát luồng xử lý gỡ lỗi, xem xét các giá trị của các biến của bạn. Tất cả từ vim!

1

Vim và pdb-clone là tổ hợp tôi sử dụng. Tôi sử dụng Home - pyclewn cung cấp một thay thế cho pdb gọi là pdb-clone đó là khá nhanh hơn so với vanilla pdb. Nó tích hợp tốt với vim thông qua một plugin, và điều tôi đánh giá cao nhất là nó sẽ chăm sóc các điểm ngắt bên ngoài mã, không đặt dấu vết bên trong, do đó không làm rối tung các số dòng của tôi. Nó chưa có cửa sổ đồng hồ cho python. Bạn cũng có thể xem vim-debug mà tôi không thể làm việc với thiết lập làm nổi bật hiện tại của mình.

1

Cũng thử https://pypi.python.org/pypi/pudb - pdb tương tự nhưng cao cấp hơn. Chứa mã nổi bật, ngăn xếp, hiển thị các giá trị sẵn có, v.v. Không chỉ giải pháp vim mà còn cho tôi hoạt động hoàn hảo.

Ba bước:

Install:

pip cài đặt pudb

Dán set_trace trong mã

từ set_trace pudb nhập khẩu; set_trace()

Chạy mã của bạn