PyCharm 2019 não está mais funcionando com o QGIS

15

Desde a atualização para o PyCharm 2019, não consigo carregar os módulos QGIS Python. Também não posso usar o preenchimento automático. Eu já excluí o cache (invalidando o cache no PyCharm e também excluindo a pasta "system" no diretório de configurações do usuário), nada parece funcionar.

Ao iniciar o console Python dentro do PyCharm e digitar "import qgis.core", recebo o seguinte erro:

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 quebrado, no PyCharm 2018.3 tudo estava bem. Os ambientes sys.path e as configurações do interpretador parecem estar corretos:

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

Alguém atualizou o PyCharm para 2019 e pode confirmar isso? Também reinstalei toda a instalação do QGIS, mas nada parece funcionar.

Parece que as DLLs que contêm os stubs são incompatíveis agora?

Meu bastão para iniciar o PyCharm é assim:

@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
fonte
Mostre-me seu *.batarquivo que você usa para executar o PyCharm, compatível com o QGIS.
Che Che
C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.2\bin\pycharm64.exeaponta para o seu novo PyCharm 2019?
Che Che
sim ele faz .. PyCharm está começando, mas parece ser incapaz de carregar as DLLs QGIS
TheGrudge
Tentei definir o PYTHONHOME em C: \ OSGeo4W64 \ etc \ ini \ python-core.bat como C: \ OSGeo4W64 \ apps \ Python37, mas nada parece funcionar.
TheGrudge
Eu costumava ter esses problemas com DLLs, mas com asynciobibliotecas adicionais . Eu descobri que instalei bibliotecas idênticas duplas no diretório raiz C:\OSGeo4W64\libe no diretório lateral lib C:\OSGeo4W64\apps\Python37\lib. Após remover a instalação da lib lateral (usando PyCharm), o problema foi resolvido. Mas seu problema não é idêntico.
Che Che

Respostas:

2

Atualizada

Reinstalei Windows 10(instalação clara), QGIS 3.10(instalação OSGeo4W clara), PyCharm 2019.3.1 ( Community Edition Build #PC-193.5662.61, built on December 18, 2019) e confirmo que não tenho erros ao executar from qgis._core import *com o PyCharm iniciado com esse *.batarquivo:

@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
fonte
Peguei seu arquivo bat e só mudei o caminho para pycharm, mas infelizmente não está funcionando. I invalidado o cache novamente e re-indexado o projeto, mas as importações QGIS não estão funcionando (o mesmo erro de carregamento DLL)
TheGrudge
este poderia ser um problema: Console do PyDev: iniciando. Python 3.7.0 (v3.7.0: 1bf9cc5093, 27 de junho de 2018, 04:59:51) [MSC v.1914 de 64 bits (AMD64)] no win32 sys.platform 'win32' Acabei de ver que o console do python parece a pensar que está sendo executado em win32
TheGrudge
@ user782457 Aqui é a minha mensagem de inicialização python (o mesmo que o seu):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
Sim, acho que o Python no Windows não está lhe dizendo a arquitetura correta, parece haver outros módulos que podem imprimir as informações corretas. De qualquer forma, instalei o QGIS 3.4.6 com o netinstaller e o PyCharm 2019 em uma nova máquina, e ainda não consigo carregar as DLLs. Portanto, isso não parece ser um problema com minha instalação.
TheGrudge 02/04/19
@ TheGrudge Agora não tenho problemas com o PyCharm. Resposta atualizada.
Che
1

Esta resposta de estouro de pilha aponta para um problema conhecido do PyCharm (pelo menos com o Anaconda) no PyCharm 2019.1 causando o ImportError: DLL load failed: The specified module could not be foundproblema.

Ele deve ser corrigido no PyCharm 2019.1.2

Jonny
fonte
Infelizmente, ele ainda está presente em 2019.1.3
TheGrudge
1

Edit 1: Parece ser apenas um problema do PyCharm 2019.1. Como solução temporária, o script de início funciona bem com o PyCharm 2018.3.6, que pode ser baixado em https://www.jetbrains.com/pycharm/download/previous.html

Esses erros também ocorrem no PyCharm Professional 2019.1, mas é possível importar os módulos qgis de um python "normal" que foi iniciado com o mesmo script de inicialização / configurações ambientais, conforme descrito acima:

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% %*
Benjamin
fonte
1

Eu verifiquei esse problema. Funciona bem no PyCharm até 2018.3.7, interrompido em 2019.1.3. Minhas variáveis ​​de ambiente estão configuradas corretamente, pois posso acessar os módulos python QGIS via linha de comando e versões anteriores do PyCharm ao iniciá-los com o mesmo arquivo .bat.

Definitivamente um bug do PyCharm. Outros usuários relataram problemas semelhantes .

Steppenpuppy
fonte
Estou de volta ao PyCharm 2018.3.7, pois não consegui fazer nada funcionar por quase 5 meses. Agora que o erro de carregamento da DLL se foi, posso executar meus unittests e outros comandos no PyCharm novamente. Não sei o que eles mudaram em 2019.x, mas isso não causa nada além de problemas para mim.
TheGrudge
1

Isso ainda funciona com PyCharm> = 2019. Você pode precisar alterar o interpretador Python que você faz referência no seu projeto PyCharm. Eu uso o arquivo .bat abaixo para iniciar o PyCharm e defina o intérprete do projeto para apontar para OSGEO4W_ROOT\bin\python-qgis.bat, python3.exeno mesmo diretório também pode 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
fonte
0

Além da resposta de Jonny e do comentário de TheGrudges sobre isso:

Ainda não está corrigido no PyCharm 2019.2

Reinier
fonte