PyCharm 2019はQGISとはもう機能していません


14

PyCharm 2019への更新以来、QGIS Pythonモジュールをロードできません。自動補完も使用できません。私はすでにキャッシュを削除しました(PyCharmのキャッシュを無効にし、ユーザー設定ディレクトリの「システム」フォルダーを削除することによって)、何も動作しないようです。

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の実行に使用するファイルを表示します。
チェ氏

C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.2\bin\pycharm64.exeあなたの新しいPyCharm 2019を指しますか?
チェ氏

はい。PyCharmは起動していますが、qgis DLLをロードできないようです
TheGrudge

C:\ OSGeo4W64 \ etc \ ini \ python-core.batのPYTHONHOMEもC:\ OSGeo4W64 \ apps \ Python37に設定しようとしましたが、何も機能していないようです。
TheGrudge

以前はDLLでこのような問題が発生していましたが、追加のasyncioライブラリで発生していました。ルートディレクトリC:\OSGeo4W64\libとサイドディレクトリlibに同じライブラリが2つインストールされていることがわかりましたC:\OSGeo4W64\apps\Python37\lib。(PyCharmを使用して)サイドlibインストールを削除した後、問題は解決しました。しかし、あなたの問題は同一ではありません。
チェ氏

回答:


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 *ような*.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% %*

batファイルを取得し、pycharmへのパスのみを変更しましたが、残念ながら機能していません。キャッシュを再度無効にし、プロジェクトのインデックスを再作成しましたが、QGISインポートが機能していません(同じDLLロードエラー)
TheGrudge

これが問題になる可能性があります:PyDevコンソール:起動中。Python 3.7.0(v3.7.0:1bf9cc5093、2018年6月27日、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
Mr. Che

ええ、WindowsでのPythonは正しいアーキテクチャを伝えていないようです。正しい情報を出力できる他のモジュールがあるようです。とにかく、netinstallerとPyCharm 2019を使用してQGIS 3.4.6を新しいマシンにインストールしましたが、まだ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でも発生しますが、上記と同じスタートアップスクリプト/環境設定で起動された「通常の」Pythonから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

この問題を確認しました。2018.3.7まではPyCharmで正常に動作しますが、2019.1.3では壊れています。同じ.batファイルで起動すると、コマンドラインおよび以前のバージョンのPyCharmを介してQGIS pythonモジュールにアクセスできるため、環境変数が正しく設定されています。

間違いなくPyCharmのバグ。他のユーザーも同様の問題を報告しています


5か月近く何も機能しなかったため、PyCharm 2018.3.7に戻りました。これでDLLロードエラーがなくなり、PyCharmでユニットテストと他のコマンドを再度実行できます。2019.xでそれらが何を変更したかはわかりませんが、それは問題を引き起こすだけです。
TheGrudge

1

これは、PyCharm> = 2019でも引き続き機能します。PyCharmプロジェクトで参照するPythonインタープリターを変更する必要がある場合があります。以下の.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ではまだ修正されていません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.