PyCharm 2019 ไม่ทำงานกับ QGIS อีกต่อไป


15

ตั้งแต่อัพเดตเป็น PyCharm 2019 ฉันไม่สามารถโหลดโมดูล QGIS Python ได้ ฉันไม่สามารถใช้การทำให้สมบูรณ์อัตโนมัติได้เช่นกัน ฉันลบแคชไปแล้ว (โดยการทำให้แคชใน PyCharm ไม่ถูกต้องและโดยการลบโฟลเดอร์ "system" ในไดเรกทอรีการตั้งค่าผู้ใช้) ดูเหมือนจะไม่มีอะไรทำงาน

เมื่อเริ่มต้น Python console ภายใน PyCharm และพิมพ์ "import qgis.core" ฉันได้รับข้อผิดพลาดดังต่อไปนี้:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.2\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\OSGEO4~1\apps\qgis-ltr\python\qgis\core\__init__.py", line 27, in <module>
    from qgis._core import *
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.2\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.

ดูเหมือนว่ามีอะไรบางอย่างแตกใน PyCharm 2018.3 ทุกอย่างก็โอเค สภาพแวดล้อม sys.path และการตั้งค่าล่ามดูเหมือนจะถูกต้อง:

['C:\\Program Files\\JetBrains\\PyCharm Community Edition '
 '2018.2.2\\helpers\\pydev',
 'C:\\OSGEO4~1\\apps\\qgis-ltr\\python',
 'C:\\OSGEO4~1\\apps\\qgis-ltr\\python\\plugins',
 'C:\\Program Files\\JetBrains\\PyCharm Community Edition '
 '2018.2.2\\helpers\\third_party\\thriftpy',
 'C:\\Program Files\\JetBrains\\PyCharm Community Edition '
 '2018.2.2\\helpers\\pydev',
 'C:\\OSGeo4W64\\apps\\Python37\\python37.zip',
 'C:\\OSGEO4~1\\apps\\Python37\\DLLs',
 'C:\\OSGEO4~1\\apps\\Python37\\lib',
 'C:\\OSGeo4W64\\apps\\Python37',
 'C:\\OSGEO4~1\\apps\\Python37',
 'C:\\OSGEO4~1\\apps\\Python37\\lib\\site-packages',
 'C:\\OSGEO4~1\\apps\\Python37\\lib\\site-packages\\win32',
 'C:\\OSGEO4~1\\apps\\Python37\\lib\\site-packages\\win32\\lib',
 'C:\\OSGEO4~1\\apps\\Python37\\lib\\site-packages\\Pythonwin']

มีใครอัปเดต PyCharm เป็น 2019 และสามารถยืนยันได้ ฉันติดตั้งการติดตั้ง QGIS ใหม่ทั้งหมด แต่ดูเหมือนว่าจะไม่มีอะไรทำงาน

ดูเหมือนว่า DLLs ที่มี stubs ไม่เข้ากันตอนนี้หรือไม่

ค้างคาวของฉันที่เริ่มต้น PyCharm มีลักษณะเช่นนี้:

@echo off
SET OSGEO4W_ROOT=C:\OSGeo4W64
call "%OSGEO4W_ROOT%"\bin\o4w_env.bat
call "%OSGEO4W_ROOT%"\apps\grass\grass-7.4.2\etc\env.bat
@echo off
path %PATH%;%OSGEO4W_ROOT%\apps\qgis\bin
path %PATH%;%OSGEO4W_ROOT%\apps\grass\grass-7.4.2\lib
path %PATH%;%OSGEO4W_ROOT%\apps\Qt5\bin
path %PATH%;%OSGEO4W_ROOT%\apps\Python37\Scripts
path %PATH%;C:\Program Files\Docker\Docker\Resources\bin
path %PATH%;C:\Program Files\7-Zip

set QT_PLUGIN_PATH=C:\OSGeo4W64\apps\Qt5\plugins

set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis-ltr\python
set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis-ltr\python\plugins
set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python37

start "PyCharm aware of Quantum GIS" /B "C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.2\bin\pycharm64.exe" %*

แสดง*.batไฟล์ของคุณที่คุณใช้เพื่อเรียกใช้ PyCharm เข้ากันได้กับ QGIS
นายเช

C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.2\bin\pycharm64.exeชี้ไปที่ PyCharm 2019 ใหม่ของคุณหรือไม่
นายเช

ใช่มันไม่ .. PyCharm เริ่มต้น แต่ดูเหมือนจะไม่สามารถโหลด qgis DLLs ได้
TheGrudge

ฉันพยายามตั้ง PYTHONHOME ใน C: \ OSGeo4W64 \ etc \ ini \ python-core.bat เป็น C: \ OSGeo4W64 \ apps \ Python37 เช่นกัน แต่ดูเหมือนว่าจะไม่ทำงาน
TheGrudge

ฉันเคยมีปัญหาดังกล่าวกับ DLLs แต่มีasyncioห้องสมุดเพิ่มเติม ฉันพบว่าฉันติดตั้งห้องสมุดเหมือนคู่ในไดเรกทอรีรากC:\OSGeo4W64\libและไดเรกทอรี C:\OSGeo4W64\apps\Python37\liblib หลังจากลบการติดตั้ง lib ด้านข้าง (โดยใช้ PyCharm) ปัญหาได้รับการแก้ไข แต่ปัญหาของคุณไม่เหมือนกัน
นายเช

คำตอบ:


2

Updated

ฉันติดตั้งใหม่Windows 10(ล้างการติดตั้ง), QGIS 3.10(ล้างการติดตั้ง OSGeo4W), PyCharm 2019.3.1 ( Community Edition Build #PC-193.5662.61, built on December 18, 2019) และฉันยืนยันว่าฉันไม่มีข้อผิดพลาดขณะดำเนินการfrom qgis._core import *กับ PyCharm ที่เปิดตัวด้วย*.batไฟล์ดังกล่าว:

@ECHO off

set OSGEO4W_ROOT=C:\OSGeo4W64

call "%OSGEO4W_ROOT%\bin\o4w_env.bat"
call "%OSGEO4W_ROOT%\bin\qt5_env.bat"
call "%OSGEO4W_ROOT%\bin\py3_env.bat"

path %OSGEO4W_ROOT%\apps\qgis\bin;%PATH%
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis

set GDAL_FILENAME_IS_UTF8=YES

set VSI_CACHE=TRUE
set VSI_CACHE_SIZE=1000000
set QT_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\qgis\qtplugins;%OSGEO4W_ROOT%\apps\qt5\plugins

SET PYCHARM="C:\Program Files\JetBrains\PyCharm Community Edition 2019.3.1\bin\pycharm64.exe"

set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis\python
set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python37
set PYTHONPATH=%OSGEO4W_ROOT%\apps\Python37\lib\site-packages;%PYTHONPATH%

set QT_QPA_PLATFORM_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\Qt5\plugins\platforms
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis

start "PyCharm aware of QGIS" /B %PYCHARM% %*

ฉันเอาไฟล์แบ็ตของคุณและเปลี่ยนเส้นทางไปที่ pycharm เท่านั้น แต่น่าเสียดายที่มันไม่ทำงาน ฉันทำให้แคชไม่ถูกต้องอีกครั้งและจัดทำดัชนีโครงการอีกครั้ง แต่การนำเข้า QGIS ไม่ทำงาน (ข้อผิดพลาดในการโหลด DLL เดียวกัน)
TheGrudge

อาจเป็นปัญหา: คอนโซล PyDev: เริ่มต้น Python 3.7.0 (v3.7.0: 1bf9cc5093, 27 มิถุนายน 2018, 04:59:51) [MSC v.1914 64 บิต (AMD64)] บน win32 sys.platform 'win32' ฉันเพิ่งเห็นว่าคอนโซลงูหลามดูเหมือนว่า เพื่อคิดว่ามันทำงานบน win32
TheGrudge

@ user782457 นี่คือข้อความเริ่มต้น python ของฉัน (เหมือนกับของคุณ):PyDev console: starting. Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
นายเช

ใช่ฉันเดา Python ภายใต้ Windows ไม่ได้บอกคุณสถาปัตยกรรมที่ถูกต้องดูเหมือนว่าจะมีโมดูลอื่น ๆ ที่สามารถพิมพ์ข้อมูลที่ถูกต้อง อย่างไรก็ตามฉันติดตั้ง QGIS 3.4.6 ด้วย netinstaller และ PyCharm 2019 บนเครื่องใหม่และฉันยังคงไม่สามารถโหลด DLLs ได้ ดังนั้นดูเหมือนว่าจะไม่มีปัญหากับการติดตั้งของฉัน
TheGrudge

@TheGrudge ตอนนี้ฉันไม่มีปัญหากับ PyCharm อัปเดตคำตอบแล้ว
นายเช

1

นี้กองมากเกินคำตอบจุดที่จะมีเป็นปัญหา PyCharm ที่รู้จักกัน (กับงูอย่างน้อย) ใน PyCharm 2,019.1 ก่อให้เกิดImportError: DLL load failed: The specified module could not be foundปัญหา

มันตั้งใจจะแก้ไขใน PyCharm 2019.1.2


น่าเสียดายที่มันยังคงมีอยู่ในปี 2019.1.3
TheGrudge

1

แก้ไข 1: ดูเหมือนจะเป็นปัญหา PyCharm 2019.1 เท่านั้น ในฐานะที่เป็นวิธีการแก้ปัญหาชั่วคราวเริ่มต้นสคริปต์ทำงานได้ดีกับ PyCharm 2018/03/06, ชสามารถดาวน์โหลดได้จากhttps://www.jetbrains.com/pycharm/download/previous.html

ข้อผิดพลาดนี้เกิดขึ้นกับ PyCharm Professional 2019.1 เช่นกัน แต่เป็นไปได้ที่จะนำเข้าโมดูล qgis จากงูหลาม "ปกติ" ที่เริ่มต้นด้วยการตั้งค่าเริ่มต้นสคริปต์ / การตั้งค่าด้านสิ่งแวดล้อมตามที่อธิบายไว้ข้างต้น:

set OSGEO4W_ROOT=C:\Program Files\QGIS 3.6
set PYCHARM="C:\Program Files\JetBrains\PyCharm 2019.1.1\bin\pycharm64.exe"
@ECHO off

call "%OSGEO4W_ROOT%\bin\o4w_env.bat"
call "%OSGEO4W_ROOT%\bin\qt5_env.bat"
call "%OSGEO4W_ROOT%\bin\py3_env.bat"

path %OSGEO4W_ROOT%\apps\qgis\bin;%PATH%
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis

set GDAL_FILENAME_IS_UTF8=YES

set VSI_CACHE=TRUE
set VSI_CACHE_SIZE=1000000
set QT_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\qgis\qtplugins;%OSGEO4W_ROOT%\apps\qt5\plugins

set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis\python
set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python37
set PYTHONPATH=%OSGEO4W_ROOT%\apps\Python37\lib\site-packages;%PYTHONPATH%

set QT_QPA_PLATFORM_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\Qt5\plugins\platforms
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis

:: A python able to call "import qgis.core"
start python

:: A python unable to call "import qgis.core"
start "PyCharm unfortunatelley not-aware of QGIS" /B %PYCHARM% %*

1

ฉันได้ตรวจสอบปัญหานี้แล้ว ทำงานได้ดีใน PyCharm ได้ถึง 2018.3.7 แตกใน 2019.1.3 ตัวแปรสภาพแวดล้อมของฉันได้รับการตั้งค่าอย่างถูกต้องเนื่องจากฉันสามารถเข้าถึงโมดูล Python ของ QGIS ผ่านบรรทัดคำสั่งและ PyCharm รุ่นก่อนหน้าเมื่อเปิดใช้งานด้วยไฟล์. bat เดียวกัน

PyCharm เป็นบั๊กแน่นอน คนอื่นมีรายงานว่ามีปัญหาที่คล้ายกัน


ฉันกลับไปที่ PyCharm 2018.3.7 เนื่องจากฉันไม่สามารถทำงานอะไรได้เกือบ 5 เดือน ตอนนี้ข้อผิดพลาดในการโหลด DLL หายไปฉันสามารถเรียกใช้ unittests และคำสั่งอื่น ๆ ใน PyCharm ได้อีกครั้ง ฉันไม่ทราบว่าสิ่งที่พวกเขาเปลี่ยนแปลงใน 2019.x แต่มันทำให้เกิดอะไรขึ้นนอกจากปัญหาสำหรับฉัน
TheGrudge

1

สิ่งนี้ยังคงใช้ได้กับ PyCharm> = 2019 คุณอาจต้องเปลี่ยน Python interpreter ที่คุณอ้างอิงในโปรเจ็กต์ PyCharm ผมใช้ด้านล่างไฟล์ค้างคาวที่จะเริ่มต้น PyCharm จากนั้นตั้งค่าล่ามโครงการชี้ไปOSGEO4W_ROOT\bin\python-qgis.bat, python3.exeในไดเรกทอรีเดียวกันอาจทำงาน

@echo off
SET OSGEO4W_ROOT=C:\OSGeo4W64
call "%OSGEO4W_ROOT%"\bin\o4w_env.bat

@echo off
path %PATH%;%OSGEO4W_ROOT%\apps\qgis\bin
path %PATH%;%OSGEO4W_ROOT%\apps\grass\grass-7.6.0\lib
path %PATH%;C:\OSGeo4W64\apps\Qt5\bin
path %PATH%;C:\OSGeo4W64\apps\Python37\Scripts

set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis\python
set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python37

set PATH=C:\Program Files\Git\bin;%PATH%

start "PyCharm aware QGIS" /B "C:\Program Files\JetBrains\PyCharm Community Edition 2019.2.2\bin\pycharm64.exe" %*

0

นอกจากคำตอบของจอนนี่และความคิดเห็นของ TheGrudges ว่า:

มันยังไม่ได้รับการแก้ไขใน PyCharm 2019.2

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