PyCharm 2019 nie współpracuje już z QGIS

15

Od aktualizacji do PyCharm 2019 nie mogę załadować modułów QGIS Python. Nie mogę również użyć automatycznego uzupełniania. Już usunąłem pamięć podręczną (przez unieważnienie pamięci podręcznej w PyCharm, a także przez usunięcie folderu „systemowego” w katalogu ustawień użytkownika), nic nie działa.

Podczas uruchamiania konsoli Python w PyCharm i wpisywania „import qgis.core” pojawia się następujący błąd:

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.

Coś wydaje się być zepsute, w PyCharm 2018.3 wszystko było w porządku. Wygląda na to, że środowiska sys.path i ustawienia interpretera są poprawne:

['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']

Czy ktoś zaktualizował PyCharm do 2019 roku i może to potwierdzić? Ponownie zainstalowałem całą instalację QGIS, ale wydaje się, że nic nie działa.

Wygląda na to, że biblioteki DLL zawierające kody pośredniczące są teraz niezgodne?

Mój nietoperz do uruchamiania PyCharm wygląda następująco:

@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" %*
TheGrudge
źródło
Pokaż mi *.batplik, którego używasz do uruchamiania PyCharm, zgodny z QGIS.
Pan Che
C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.2\bin\pycharm64.exewskazuje na twój nowy PyCharm 2019?
Pan Che
tak robi .. pycharm zaczyna, ale wydaje się być w stanie załadować biblioteki DLL QGIS
TheGrudge
Próbowałem ustawić PYTHONHOME w C: \ OSGeo4W64 \ etc \ ini \ python-core.bat na C: \ OSGeo4W64 \ apps \ Python37, ale nic nie działa.
TheGrudge
Miałem takie problemy z bibliotekami DLL, ale z dodatkowymi asynciobibliotekami. Odkryłem, że zainstalowałem podwójne identyczne biblioteki w katalogu głównym C:\OSGeo4W64\libi lib katalogu bocznego C:\OSGeo4W64\apps\Python37\lib. Po usunięciu bocznej instalacji lib (przy użyciu PyCharm) problem został rozwiązany. Ale twój problem nie jest identyczny.
Pan Che

Odpowiedzi:

2

Zaktualizowano

Ponownie zainstalowałem Windows 10(wyczyść instalację), QGIS 3.10(wyczyść instalację OSGeo4W), PyCharm 2019.3.1 ( Community Edition Build #PC-193.5662.61, built on December 18, 2019) i potwierdzam, że nie mam błędów podczas uruchamiania from qgis._core import *z PyCharm uruchomionym z takim *.batplikiem:

@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% %*
Mr. Che
źródło
Wziąłem twój plik nietoperza i zmieniłem tylko ścieżkę do pycharm, ale niestety nie działa. Ponownie unieważniłem pamięć podręczną i ponownie zaindeksowałem projekt, ale import QGIS nie działa (ten sam błąd ładowania DLL)
TheGrudge
może to być problem: konsola PyDev: uruchamianie. Python 3.7.0 (v3.7.0: 1bf9cc5093, 27 czerwca 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] na win32 sys.pl platformie „win32” Właśnie widziałem, że konsola python wydaje się myśleć, że działa na Win32
TheGrudge
@ user782457 Oto mój komunikat startowy do Pythona (taki sam jak twój):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
Mr. Che
tak, myślę, że Python pod Windows nie mówi ci właściwej architektury, wydaje się, że istnieją inne moduły, które mogą wydrukować poprawne informacje. W każdym razie zainstalowałem QGIS 3.4.6 z programem netinstaller i PyCharm 2019 na nowym komputerze i nadal nie mogę załadować bibliotek DLL. Więc to nie wydaje się być problemem z moją instalacją.
TheGrudge
@TheGrudge Teraz nie mam problemów z PyCharm. Odpowiedź zaktualizowana.
Pan Che
1

Edycja 1: Wydaje się, że jest to tylko problem PyCharm 2019.1. Jako tymczasowe rozwiązanie skrypt startowy działa dobrze z PyCharm 2018.3.6, który można pobrać ze strony https://www.jetbrains.com/pycharm/download/previous.html

Te błędy występują również w PyCharm Professional 2019.1, ale możliwe jest zaimportowanie modułów qgis z „normalnego” pytona, który został uruchomiony z tymi samymi ustawieniami skryptów startowych / środowiska jak opisano powyżej:

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% %*
Benzoes
źródło
1

Zweryfikowałem ten problem. Działa dobrze w PyCharm do 2018.3.7, zepsuty w 2019.1.3. Moje zmienne środowiskowe są skonfigurowane poprawnie, ponieważ mogę uzyskiwać dostęp do modułów python QGIS za pomocą wiersza polecenia i wcześniejszych wersji PyCharm podczas uruchamiania ich z tym samym plikiem .bat.

Zdecydowanie błąd PyCharm. Inni użytkownicy zgłosili podobne problemy .

Steppenpuppy
źródło
Wróciłem do PyCharm 2018.3.7, ponieważ przez prawie 5 miesięcy nie byłem w stanie nic zrobić. Teraz błąd ładowania DLL zniknął, mogę ponownie uruchomić moje unittests i inne polecenia w PyCharm. Nie wiem, co zmienili w 2019.x, ale powoduje to dla mnie tylko problemy.
TheGrudge
1

To nadal działa z PyCharm> = 2019. Może być konieczna zmiana interpretera Pythona, do którego odwołujesz się w projekcie PyCharm. Korzystam z poniższego pliku .bat, aby uruchomić PyCharm, a następnie ustawiam interpreter projektu na wskazanie OSGEO4W_ROOT\bin\python-qgis.bat, python3.exew tym samym katalogu może również działać.

@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" %*
Khafen
źródło
0

Oprócz odpowiedzi Jonny'ego i komentarza TheGrudges na ten temat:

Nadal nie zostało to naprawione w PyCharm 2019.2

Reinier
źródło