วิธีเชื่อมต่อ Qgis กับ pycharm ใน Ubuntu OS


10

ฉันเพิ่งเริ่มใช้ pycharm กับ qgis แต่ไม่สามารถเชื่อมต่อทั้งคู่ได้ Pycharm ยังคงอยู่ในสถานะ "รอการเชื่อมต่อ" อยู่เสมอ บทเรียนส่วนใหญ่มีจุดไปที่ windows แต่ฉันใช้ Ubuntu ดังนั้นจึงไม่สามารถหาวิธีการแก้ปัญหารหัส qgis บน pycharm นี่คือรหัส 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 หรือไม่

pycharm อยู่เสมอใน:

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

การกำหนดค่าทั้งหมดของฉันอยู่ที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.