PyCharm 2019 вже не працює з QGIS


15

З моменту оновлення до PyCharm 2019 я не можу завантажити модулі QGIS Python. Я також не можу використовувати автоматичне завершення. Я вже видалив кеш (відключивши кеш у PyCharm, а також видаливши папку "система" в каталозі налаштувань користувача), схоже, нічого не працює.

Під час запуску консолі Python всередині 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, але, здається, нічого не працює.

Схоже, 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" %*

Покажіть мені свій *.batфайл, який ви використовуєте для запуску PyCharm, сумісного з QGIS.
Містер Че

C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.2\bin\pycharm64.exeвказує на ваш новий PyCharm 2019?
Містер Че

так, так. PyCharm запускається, але, здається, не вдається завантажити qgis DLL
TheGrudge

Я спробував встановити PYTHONHOME у C: \ OSGeo4W64 \ etc \ ini \ python-core.bat на C: \ OSGeo4W64 \ apps \ Python37, але нічого, здається, не працює.
TheGrudge

У мене були такі проблеми з DLL, але з додатковими asyncioбібліотеками. Я виявив, що я встановив подвійні однакові бібліотеки в кореневому каталозі C:\OSGeo4W64\libта в бічній папці C:\OSGeo4W64\apps\Python37\lib. Після видалення установки бічної вкладки (за допомогою PyCharm) проблема була вирішена. Але ваша проблема не тотожна.
Містер Че

Відповіді:


2

Оновлено

Я перевстановив 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% %*

Я взяв ваш файл bat і лише змінив шлях до 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' Я щойно бачив, що консоль python здається подумати, що він працює на 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 на новій машині, і я все ще не можу завантажити DLL. Тож, здається, це не проблема з моєю установкою.
TheGrudge

@TheGrudge Зараз у мене немає проблем з PyCharm. Відповідь оновлено.
Містер Че


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. Мої змінні середовища налаштовані правильно, оскільки я можу отримати доступ до модулів python QGIS через командний рядок та більш ранні версії PyCharm при запуску їх з тим же файлом .bat.

Однозначно помилка PyCharm. Інші користувачі повідомили про подібні проблеми .


Я повернувся до PyCharm 2018.3.7, оскільки мені не вдалося нічого працювати протягом майже 5 місяців. Тепер помилка завантаження DLL зникла, я можу знову запустити свої тестові одиниці та інші команди в PyCharm. Я не знаю, що вони змінили у 2019.x, але це не викликає у мене нічого, крім проблем.
TheGrudge

1

Це все ще працює з PyCharm> = 2019. Можливо, вам буде потрібно просто змінити інтерпретатор Python, на який ви посилаєтесь у своєму проекті PyCharm. Я використовую нижче .bat файл для запуску 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.