Kiểm tra PyCharm . Tôi đã là một khách hàng trả tiền hạnh phúc trong nhiều năm, tuy nhiên cũng có sẵn phiên bản cộng đồng miễn phí .
Có một plugin xem tập tin sẽ sao chép các tập tin vào một máy từ xa (RPi của bạn). Và nó có khả năng thực hiện sửa lỗi từ xa .
nối dây các mô-đun gỡ lỗi
Đối với việc thiết lập gỡ lỗi từ xa PyCharm, điều đầu tiên cần làm là nối dây pycharm-debug.egg
. Tôi đang sử dụng máy Mac và trong trường hợp của tôi, tập tin đang ở /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg
. Tôi đã sao chép nó vào RPi của mình bằng lệnh:
scp /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg pi@mediapi:
Tệp này cần phải ở đâu đó trong đường dẫn của Python để tìm thấy nó. Tôi đã tìm một nơi phù hợp bằng cách chạy như sau:
pi@mediapi ~ $ python -c 'import sys; print sys.path'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7']
Từ danh sách đó tôi tin /usr/local/lib/python2.7/dist-packages/
là phù hợp nhất (vì nó nằm trong /usr/local
), vì vậy:
sudo mv pycharm-debug.egg /usr/local/lib/python2.7/dist-packages/
Và chúng ta cần một .pth
tập tin để đưa nó vào đường dẫn:
pi@mediapi ~ $ echo /usr/local/lib/python2.7/dist-packages/pycharm-debug.egg | sudo tee -a /usr/local/lib/python2.7/dist-packages/pycharm-debug.pth
Cuối cùng, xác minh thiết lập:
pi@mediapi ~ $ python -c 'import pydevd; print pydevd'
<module 'pydevd' from '/usr/local/lib/python2.7/dist-packages/pycharm-debug.egg/pydevd.py'>
Thật tuyệt, các mô-đun gỡ lỗi được nối dây. Bật để gỡ lỗi một tập lệnh. Tôi sẽ gỡ lỗi kịch bản người nghe tôi đã viết cho bài viết này .
Thiết lập PyCharm
Trong PyCharm, đi đến Run -> Edit Configurations...
Nhấn +
dấu ở phía trên bên trái và chọn Python Remote Debug
. Đơn giản chỉ cần đặt tên cho nó, remote debug
và bạn đã hoàn thành ở đây; nhấn ok
Bây giờ bấm vào Run -> Debug 'remote debug'
và bạn sẽ thấy một thông báo trong bảng điều khiển gỡ lỗi,Use the following code to connect to the debugger
Sao chép các dòng, trong trường hợp của tôi cuối cùng chúng trông như thế này:
import pydevd
pydevd.settrace('localhost', port=56112, stdoutToServer=True, stderrToServer=True)
Dán chúng ở đầu tệp bạn đang gỡ lỗi và lưu tệp.
Không sử dụng plugin đồng bộ hóa tệp, tôi sao chép các tệp bằng rsync:
[berto@g6]$ rsync -av ./ pi@mediapi:broadcast/
Bây giờ, chú ý cấu hình nói localhost
. Cách tốt nhất để kết nối với trình gỡ lỗi là sử dụng các khả năng chuyển tiếp cổng của SSH để RPi có thể ở trên bàn của bạn hoặc trên toàn cầu và nó hoạt động theo cùng một cách. SSH vào RPi bằng lệnh này để liên kết cổng từ xa với cổng cục bộ:
[berto@g6]$ ssh -R 56112:localhost:56112 pi@mediapi
PyCharm sẽ hiển thị cho bạn một tin nhắn Waiting for process connection...
Trên RPi, chạy chương trình và bạn sẽ thấy trình gỡ lỗi khởi động. Theo mặc định, nó tạm dừng trên dòng ngay sau dòng pydevd, bạn có thể thay đổi cấu hình nếu muốn.
Và tại thời điểm đó, bạn đang gỡ lỗi từ xa! :)