2017-10-10 21 views
6

Plugin Docker có một cổng debug để kết nối với một container enter image description hereLàm cách nào để gỡ lỗi vùng chứa python trong intellij?

Tôi có một ứng dụng python, nhưng theo docs cảng debug chỉ được hỗ trợ cho java.

Làm cách nào tôi có thể đặt điểm ngắt và gỡ lỗi vùng chứa python của mình trong intellij? Có cách nào tôi có thể có container python kết nối với trình sửa lỗi python intellij?

Chỉnh sửa: Tôi đang chạy Windows 10, docker cho Windows và vùng chứa là linux. Có lẽ tôi cần phải tự thiết lập một số loại gỡ lỗi từ xa cho trình sửa lỗi intellij Python? Ngoài ra, cũng có thể yêu cầu, tôi phải có phiên bản chuyên nghiệp để gỡ lỗi từ xa hoặc có cách giải quyết khác bằng cách sử dụng cộng đồng không?

+0

Bạn đang sử dụng hệ điều hành chủ nào? –

+0

Windows là hệ điều hành của tôi, vùng chứa là Linux – red888

Trả lời

5

Bạn có thể thực hiện điều đó bằng cách sử dụng Gỡ lỗi từ xa Python. Mở cửa sổ cấu hình và click vào + -> Python từ xa gỡ lỗi

Python Debugger Option

Sau đó, bạn hoặc thiết lập một cổng hoặc giữ nó trống cho Pycharm để tìm một cổng có sẵn.

Python Remote Debug

Sau đó bấm vào biểu tượng Debug để khởi động máy chủ debug sẽ hiển thị bên dưới loại thông điệp

Starting debug server at port 57588 
Use the following code to connect to the debugger: 
import pydevd 
pydevd.settrace('localhost', port=57588, stdoutToServer=True, stderrToServer=True) 
Waiting for process connection... 

Bây giờ bạn cần phải thiết lập PyDev gỡ lỗi bên Docker. Bạn sẽ cần số pycharm-debug-py3k.egg cho việc này. Đối với tôi, tôi sao chép vào thư mục Dockerfile hiện tại của tôi như dưới đây

cp "/Users/tarun.lalwani/Library/Application Support/IntelliJIdea2017.2/python/pycharm-debug-py3k.egg" . 

Các vị trí cho bạn sẽ thay đổi dựa trên phiên bản IntelliJ cài đặt. Sau đó, chúng ta cần phải sửa Dockerfile của chúng tôi

FROM python:3.6 
WORKDIR /app 
ENV PYTHONPATH=/app:/app/debug 
COPY pycharm-debug-py3k.egg /app/debug 
COPY debug_test.py /app/ 
CMD python debug_test.py 

Các debug_test.py khi xây dựng sẽ phải bên dưới dòng ở đầu

import pydevd 
pydevd.settrace('docker.for.mac.localhost', port=55507, stdoutToServer=True, stderrToServer=True) 

Lưu ý: Tôi đã sử dụng docker.for.mac.localhost như tôi sử dụng Docker cho mac, nhưng nếu sử dụng Docker cho windows thì sử dụng docker.for.win.localhost. Đối với hộp công cụ hoặc linux, bạn sẽ thêm IP của máy của mình

Vì nó là docker, chúng tôi có thể muốn cố định cổng thay vì động như tôi đã làm. Bây giờ chúng ta xây dựng tệp docker và chạy nó.

này sẽ mở ra một cửa sổ bật lên trong pycharm, nhấp autodetect để phát hiện ánh xạ nguồn

Auto detect

Và sau đó bạn sẽ có mã của bạn breakpointed tại dòng chính của tập tin của bạn

Debug Local Execution Remote

+0

Có plugin của bên thứ ba hay thứ gì đó để có thể thực hiện việc này mà không có sự cố chuyên nghiệp hoặc một số cách giải quyết khác không? – red888

+1

Tôi không chắc chắn có một cái gì đó như thế cho PyCharm nhưng có lẽ một người đã thực hiện nghiên cứu sâu rộng trong khu vực có thể biết. Tùy chọn khác là để đi cho PyDev Eclipse hoặc Visual Studio Mã đó là gỡ lỗi từ xa cho Python –

+1

pycharm-debug.egg cho Python lên phiên bản 2 –

Các vấn đề liên quan