PyCharm 2019 ya no funciona con QGIS

14

Desde la actualización de PyCharm 2019, no puedo cargar los módulos QGIS Python. Tampoco puedo usar la finalización automática. Ya eliminé el caché (al invalidar el caché en PyCharm y también al eliminar la carpeta "sistema" en el directorio de configuración del usuario), nada parece funcionar.

Al iniciar la consola de Python dentro de PyCharm y escribir "import qgis.core", aparece el siguiente error:

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.

Algo parece estar roto, en PyCharm 2018.3 todo estaba bien. Los entornos sys.path y la configuración del intérprete parecen ser correctos:

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

¿Alguien ha actualizado PyCharm a 2019 y puede confirmar esto? También reinstalé toda la instalación de QGIS, pero nada parece funcionar.

¿Parece que las DLL que contienen los apéndices ahora son incompatibles?

Mi bate para comenzar PyCharm se ve así:

@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
fuente
Muéstrame tu *.batarchivo que utilizas para ejecutar PyCharm, compatible con QGIS.
Sr. Che el
C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.2\bin\pycharm64.exeapunta a tu nuevo PyCharm 2019?
Sr. Che el
sí, lo hace ... PyCharm se está iniciando, pero parece que no puede cargar las DLL de qgis
TheGrudge
Traté de configurar PYTHONHOME en C: \ OSGeo4W64 \ etc \ ini \ python-core.bat a C: \ OSGeo4W64 \ apps \ Python37 también, pero nada parece funcionar.
TheGrudge
Solía ​​tener tales problemas con las DLL, pero con asynciobibliotecas adicionales . Descubrí que instalé bibliotecas idénticas dobles en el directorio raíz C:\OSGeo4W64\liby en el directorio lateral lib C:\OSGeo4W64\apps\Python37\lib. Después de eliminar la instalación de lib lateral (usando PyCharm), el problema se resolvió. Pero tu problema no es idéntico.
Sr. Che el

Respuestas:

2

Actualizado

Reinstalé Windows 10(borrar la instalación), QGIS 3.10(borrar la instalación de OSGeo4W), PyCharm 2019.3.1 ( Community Edition Build #PC-193.5662.61, built on December 18, 2019) y confirmo que no tengo errores mientras ejecuto from qgis._core import *con PyCharm iniciado con dicho *.batarchivo:

@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% %*
Señor che
fuente
Tomé su archivo bat y solo cambié la ruta a pycharm, pero desafortunadamente no funciona. Invalidé el caché nuevamente y volví a indexar el proyecto, pero las importaciones de QGIS no funcionan (el mismo error de carga de DLL)
TheGrudge
podría ser un problema: consola PyDev: iniciando. Python 3.7.0 (v3.7.0: 1bf9cc5093, 27 de junio de 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] en win32 sys.platform 'win32' Acabo de ver que la consola de Python parece pensar que se está ejecutando en win32
TheGrudge
@ user782457 Aquí está mi mensaje de inicio de Python (igual que el suyo):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
Sr. Che
Sí, supongo que Python en Windows no te dice la arquitectura correcta, parece que hay otros módulos que pueden imprimir la información correcta. De todos modos, instalé QGIS 3.4.6 con el netinstaller y PyCharm 2019 en una nueva máquina, y todavía no puedo cargar las DLL. Por lo tanto, no parece ser un problema con mi instalación.
TheGrudge
@TheGrudge Ahora no tengo problemas con PyCharm. Respuesta actualizada
Sr. Che
1

Esta respuesta de desbordamiento de pila indica que hay un problema conocido de PyCharm (con Anaconda al menos) en PyCharm 2019.1 que causa el ImportError: DLL load failed: The specified module could not be foundproblema.

Está destinado a ser reparado en PyCharm 2019.1.2

Jonny
fuente
Desafortunadamente, todavía está presente en 2019.1.3
TheGrudge
1

Edición 1: Parece ser solo un problema de PyCharm 2019.1. Como solución temporal, el script de inicio funciona bien con PyCharm 2018.3.6, que se puede descargar desde https://www.jetbrains.com/pycharm/download/previous.html

Este error también ocurre con PyCharm Professional 2019.1, pero es posible importar los módulos qgis desde un python "normal" que se inició con el mismo script de inicio / configuración ambiental como se describió anteriormente:

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% %*
Benjamín
fuente
1

He verificado este problema. Funciona bien en PyCharm hasta 2018.3.7, roto en 2019.1.3. Mis variables de entorno están configuradas correctamente, ya que puedo acceder a los módulos de Python QGIS a través de la línea de comandos y versiones anteriores de PyCharm cuando los ejecuto con el mismo archivo .bat.

Definitivamente un error de PyCharm. Otros usuarios han informado problemas similares .

Steppenpuppy
fuente
Regresé a PyCharm 2018.3.7, ya que no pude hacer que nada funcionara durante casi 5 meses. Ahora que el error de carga de DLL desapareció, puedo ejecutar mis pruebas de unidad y otros comandos en PyCharm nuevamente. No sé qué han cambiado en 2019.x, pero no me causa más que problemas.
TheGrudge
1

Esto todavía funciona con PyCharm> = 2019. Es posible que solo necesite cambiar el intérprete de Python al que hace referencia en su proyecto PyCharm. Utilizo el siguiente archivo .bat para iniciar PyCharm y luego configuro el intérprete de proyecto para que apunte OSGEO4W_ROOT\bin\python-qgis.bat, python3.exeen el mismo directorio también puede funcionar.

@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
fuente
0

Además de la respuesta de Jonny y el comentario de TheGrudges a eso:

Todavía no está arreglado en PyCharm 2019.2

Reinier
fuente