Cách kết nối Qgis với pycharm trong Ubuntu OS


10

Tôi mới bắt đầu sử dụng pycharm với qgis nhưng không thể kết nối cả hai. Pycharm luôn ở trong trạng thái "chờ kết nối". Hầu hết các hướng dẫn có sẵn đều chỉ ra các cửa sổ nhưng tôi đang sử dụng ubfox nên không thể tìm cách gỡ lỗi mã qgis trên pycharm. Đây là mã pycharm của tôi:

from shapely.geometry import *
from shapely.wkt import loads

import sys

import pydevd

pydevd.settrace('localhost', port=53100, stdoutToServer=True, stderrToServer=True)

class Loader:

    def __init__(self, iface):

        """Initialize using the qgis.utils.iface
        object passed from the console.

        """
        self.iface = iface

Tôi đã kích hoạt các điểm dừng trong pycharm và cũng đã thêm pycharm-debug.egg trong pythonpath, có ai cấu hình nó từ qgis trên ubfox không?

pycharm luôn ở trong:

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

Khi tôi chạy tập lệnh này trên đầu từ qgis, không có gì xảy ra, điểm dừng không được gọi.


Bạn có muốn các lớp QGIS được Pycharm công nhận không?
wonderim

Câu trả lời:


1

Trên Arch Linux (nhưng nó cũng hoạt động trên Ubuntu), tôi sử dụng tập lệnh python này khi tải kiểm tra QGIS nếu có ai nghe trên cổng 53100. Nếu vậy, nó cố gắng nhập pydevd từ thư mục của pycharm và cố gắng kết nối với trình gỡ lỗi từ xa.

import psutil


def is_listening_local(port=53100):
    """Return True if someone is listening on the port"""

    els = psutil.net_connections()
    for el in els:
        if el.laddr.port == port:
            return True
    else:
        return False


if is_listening_local():
    try:
        import sys
        # Add the pydevd directory to PYTHONPATH
        sys.path.append('/opt/pycharm-professional/helpers/pydev/')

        import pydevd
        # Connect to the remote debugger
        pydevd.settrace(
            'localhost', port=53100, stdoutToServer=True, stderrToServer=True,
            suspend=False
        )
    except Exception:
        pass

Cấu hình hoàn chỉnh của tôi là ở đây

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.