PyCharm 2019 больше не работает с QGIS


14

После обновления до 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 запускается, но кажется, что он не может загрузить библиотеки DLL
qgis

Я попытался установить PYTHONHOME в C: \ OSGeo4W64 \ etc \ ini \ python-core.bat в C: \ OSGeo4W64 \ apps \ Python37, но, похоже, ничего не работает.
TheGrudge

Раньше у меня были такие проблемы с DLL, но с дополнительными asyncioбиблиотеками. Я обнаружил, что установил двойные идентичные библиотеки в корневом каталоге C:\OSGeo4W64\libи в боковом каталоге 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, но, к сожалению, он не работает. Я снова
сделал

может ли это быть проблемой: консоль 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 с сетевым установщиком и PyCharm 2019 на новую машину, и я до сих пор не могу загрузить библиотеки DLL. Так что, похоже, это не проблема с моей установкой.
TheGrudge

@TheGrudge Теперь у меня нет проблем с PyCharm. Ответ обновлен.
г-н Че

1

Этот ответ о переполнении стека указывает на наличие известной проблемы PyCharm (по крайней мере, с Anaconda) в PyCharm 2019.1, вызывающей ImportError: DLL load failed: The specified module could not be foundпроблему.

Он предназначен для исправления в PyCharm 2019.1.2


К сожалению, это все еще присутствует в 2019.1.3
TheGrudge

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 году, но это не вызывает у меня ничего, кроме проблем.
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.