Bagaimana menghubungkan Qgis dengan pycharm di OS Ubuntu


10

Saya baru saja mulai menggunakan pycharm dengan qgis tetapi tidak bisa menghubungkan keduanya. Pycharm selalu berada dalam kondisi "menunggu koneksi". Kebanyakan tutorial menunjuk ke windows tapi saya menggunakan ubuntu jadi tidak bisa menemukan cara untuk men-debug kode qgis di pycharm. Ini kode pycharm saya:

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

Saya telah mengaktifkan breakpoints di pycharm dan juga menambahkan pycharm-debug.egg di pythonpath apakah ada yang bisa mengkonfigurasi dari qgis di ubuntu?

pycharm selalu di:

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

Ketika saya menjalankan skrip ini di atas dari qgis tidak ada yang terjadi, breakpoint tidak dipanggil.


Apakah Anda ingin kelas QGIS diakui oleh Pycharm?
wondim

Jawaban:


1

Di Arch Linux (tetapi harus juga berfungsi pada Ubuntu), saya menggunakan skrip python ini yang pada pemuatan memeriksa QGIS apakah ada yang mendengarkan pada port 53100. Jika demikian, ia mencoba mengimpor pydevd dari direktori pycharm dan mencoba menyambung ke debugger jarak jauh.

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

Konfigurasi lengkap saya ada di sini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.