PyCharm 2019는 더 이상 QGIS와 작동하지 않습니다


15

PyCharm 2019로 업데이트 한 이후 QGIS Python 모듈을로드 할 수 없습니다. 자동 완성도 사용할 수 없습니다. PyCharm에서 캐시를 무효화하고 사용자 설정 디렉토리에서 "system"폴더를 삭제하여 캐시를 이미 삭제했지만 아무 것도 작동하지 않는 것 같습니다.

PyCharm 내에서 Python 콘솔을 시작하고 "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 설치를 다시 설치했지만 아무것도 작동하지 않는 것 같습니다.

스텁을 포함하는 DLL이 호환되지 않는 것 같습니다.

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" %*

*.batQGIS와 호환되는 PyCharm을 실행하는 데 사용하는 파일을 알려주십시오 .
Mr. Che

C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.2\bin\pycharm64.exe새로운 PyCharm 2019를 가리 킵니까?
Mr. Che

네, 그렇습니다. PyCharm이 시작되었지만 qgis DLL을로드 할 수없는 것 같습니다
TheGrudge

C : \ OSGeo4W64 \ etc \ ini \ python-core.bat의 PYTHONHOME을 C : \ OSGeo4W64 \ apps \ Python37로 설정하려고 시도했지만 아무것도 작동하지 않는 것 같습니다.
TheGrudge

DLL에는 문제가 있었지만 추가 asyncio라이브러리 에는 문제가 있었습니다. 루트 디렉토리 C:\OSGeo4W64\lib와 사이드 디렉토리 lib에 동일한 라이브러리 두 개를 설치 한 것을 발견했습니다 C:\OSGeo4W64\apps\Python37\lib. PyCharm을 사용하여 side lib 설치를 제거한 후 문제가 해결되었습니다. 그러나 당신의 문제는 동일하지 않습니다.
Mr. Che

답변:


2

업데이트

PyCharm 2019.3.1 ( ) , PyCharm 2019.3.1 ( )을 다시 설치하고 Windows 10(설치 지우기), QGIS 3.10(OSGeo4W 설치 지우기 Community Edition Build #PC-193.5662.61, built on December 18, 2019) 다음과 from qgis._core import *같은 *.bat파일로 시작한 PyCharm으로 실행 하는 동안 오류가 없음을 확인했습니다 .

@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, 2018 년 6 월 27 일, 04:59:51) win32 sys.platform 'win32'의 [MSC v.1914 64 비트 (AMD64)] 파이썬 콘솔이 그것이 win32에서 실행되고 있다고 생각
TheGrudge

@ user782457 다음은 파이썬 시작 메시지입니다 (귀하와 동일) :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

예, Windows에서 Python이 올바른 아키텍처를 알려주지 않는 것 같습니다. 올바른 정보를 인쇄 할 수있는 다른 모듈이있는 것 같습니다. 어쨌든 새 컴퓨터에 netinstaller 및 PyCharm 2019와 함께 QGIS 3.4.6을 설치했지만 여전히 DLL을로드 할 수 없습니다. 따라서 설치에 문제가없는 것 같습니다.
TheGrudge

@ TheGrudge PyCharm에는 아무런 문제가 없습니다. 답변이 업데이트되었습니다.
Mr. Che


1

편집 1 : PyCharm 2019.1 문제 인 것 같습니다. 임시 솔루션으로 시작 스크립트는 PyCharm 2018.3.6에서 잘 작동하며 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에서 잘 작동합니다. 동일한 .bat 파일로 실행할 때 명령 줄 및 이전 버전의 PyCharm을 통해 QGIS 파이썬 모듈에 액세스 할 수 있으므로 환경 변수가 올바르게 설정되었습니다.

확실히 PyCharm 버그. 다른 사용자들도 비슷한 문제를 보고 했습니다 .


PyCharm 2018.3.7로 돌아 왔는데 거의 5 개월 동안 아무런 작업도 수행 할 수 없었습니다. 이제 DLL로드 오류가 사라졌으며 PyCharm에서 unittests 및 기타 명령을 다시 실행할 수 있습니다. 2019.x에서 변경된 사항을 모르지만 문제가 발생합니다.
TheGrudge

1

이것은 여전히 ​​PyCharm> = 2019에서 작동합니다. PyCharm 프로젝트에서 참조하는 Python 인터프리터 만 변경하면됩니다. 나는 다음을 차례로 프로젝트 인터프리터를 설정 PyCharm을 시작 .BAT 파일 아래를 사용 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

Jonny의 답변과 TheGrudges의 의견 외에도 다음과 같은 내용이 있습니다.

PyCharm 2019.2에서는 여전히 수정되지 않았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.