Як з'єднати Qgis з pycharm в ОС Ubuntu


10

Я щойно почав використовувати pycharm з qgis, але не зміг з'єднати їх обох. Піхарм завжди залишається в стані "очікування на з'єднання". Більшість доступних підручників вказує на Windows, але я використовую ubuntu, тому не вдалося знайти спосіб налагодження qgis-коду на pycharm. Ось мій код піхарми:

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

Я включив точки прориву в pycharm, а також додав pycharm-debug.egg в pythonpath, чи хтось налаштовує його з qgis на ubuntu?

піхарма завжди в:

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...

Коли я запускаю цей скрипт вгорі від qgis нічого не відбувається, точку розриву не називають.


Ви хочете, щоб класи QGIS були розпізнані Pycharm?
wondim

Відповіді:


1

У Arch Linux (але він також повинен працювати на Ubuntu), я використовую цей скрипт python, який під час завантаження QGIS перевіряє, чи слухає хто-небудь порт 53100. Якщо так, він намагається імпортувати pydevd з каталогу pycharm і намагається підключитися до віддалений налагоджувач.

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

Моя повна конфігурація тут

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.