Ubuntu OS'de Qgis'i pycharm ile bağlama


10

Qgis ile pycharm kullanmaya başladım, ancak ikisini birden bağlayamadım. Pycharm her zaman "bağlantı bekleniyor" durumunda kalır. Mevcut öğreticiler çoğu windows işaret ama ubuntu kullanıyorum yani pycharm qgis kodu hata ayıklamak için bir yol bulamadı. İşte benim pycharm kodum:

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

Ben pycharm kesme noktaları etkinleştirdi ve pythonpath pycharm-debug.egg ekledi nasıl herkes nasıl ubuntu üzerinde qgis yapılandırmak?

pycharm her zaman içindedir:

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

Bu komut dosyasını qgis'den çalıştırdığımda hiçbir şey olmaz, kesme noktası çağrılmaz.


QGIS sınıflarının Pycharm tarafından tanınmasını ister misiniz?
wondim

Yanıtlar:


1

Arch Linux'ta (ancak Ubuntu'da da çalışması gerekir), QGIS'in yüklenmesinde birinin 53100 numaralı bağlantı noktasını dinleyip dinlemediğini kontrol eden bu python komut dosyasını kullanıyorum. Öyleyse, pydevd'ü pycharm'ın dizininden almaya çalışır ve bağlanmaya çalışır. uzaktan hata ayıklayıcı.

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

Tüm yapılandırmam burada

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.