スタンドアロンPyQGISスクリプトを作成する際のqgis​​.coreのインポートに関する問題


18

私はqgis.coreと他のさまざまなqgisライブラリを使用するWindows 7でスタンドアロンのPythonスクリプトを作成しようとしています。

このテーマに関する古い質問をここで見つけました:PyQGISを使用してスタンドアロンPythonスクリプトを作成しますか?こちらのガイドを使用して、アドバイスに従っていました:http : //docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html#python-applications

そこで提案されているコードは次のとおりです。

set PYTHONPATH=c:\qgispath\python

に続く:

set PATH=C:\qgispath;%PATH%

IDLEは「最初の設定」を好まないことがわかったため、コードは次のようになります。

PYTHONPATH="C:\OSGeo4W64\apps\qgis\python"
PATH="C:\OSGeo4W64\apps\qgis\python\qgis\core;%PATH%"
import qgis.core

そして私は得る:

Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core

最後に;%PATH% "を削除することを考えると考えられるパスのすべてのバリエーション(少し余分に見える)を試しましたが、それ以上の情報を見つけることができませんでした。間違っている?

編集:

ルイージ・ピレリのコメントを見た後、私は今試しました:

>>> PYTHONPATH="C:/OSGEO4~1/apps/qgis/./python\qgis"
>>> import qgis.core

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core
>>> PATH="C:\OSGeo4W64\apps\qgis\python\qgis\core;%PATH%"
>>> import qgis.core

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core
>>> PATH="C:/OSGEO4~1/apps/qgis/./python\qgis\core;%PATH%"
>>> import qgis.core

Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    import qgis.core
ImportError: No module named qgis.core
>>> 

直面している正確な問題の概要を説明する方法で質問のタイトルを変更してください。
-SS_Rebelious

QGIS Pythonコンソールで「qgis」と入力して読み取れる値としてPYTHONPATHを設定します...値は何ですか?私の場合:<モジュール'QGIS' 'C:/ OSGEO4〜1 /アプリケーション/ QGIS-devの/./のpython \ qgis_からinit_に.pyc'>:「C:=>私はPYTHONPATHにパスを追加しました/ OSGEO4〜1 / apps / qgis-dev /./ python \ qgis」
ルイージピレリ

タイトルを修正しました、ありがとう、私はこれを試して、質問の本文に報告します
-user24956

1
それでも運が良くないので、PATHとPYTHONPATHの組み合わせを何回も試してみました。
user24956

回答:


12

OSGeo4Wを介してQGISをインストールした場合は、次のワークフローに従うことをお勧めします(Windows 7でテストしました)。

  1. OSGeo4W Shellを開きます。Start->All programs->OSGeo4W->OSGeo4W Shell

  2. 環境変数を設定します。私の推奨する方法は、OSG​​eo4Wシェルからこのbatファイル(2016.11.03に更新:このbatファイル)を実行することです。ご覧のとおり、ファイルは次のように環境変数を設定します。

    set PYTHONPATH=%OSGEO4W_ROOT%\\apps\\qgis\\python
    set PATH=%OSGEO4W_ROOT%\\apps\\qgis\\bin;%PATH%

    もちろん、これらのパスがOSに存在することを自分で確認し、必要に応じて調整する必要があります。

    したがって、.batファイルをダウンロードし、OSGeo4WシェルからアクセスしてEnterキーを押して実行します。

    ここに画像の説明を入力してください

  3. 次のいずれかの方法でPyQGISライブラリをインポートします。

    a。Pythonインタープリターを入力します。pythonOSGeo4Wシェルで実行し、ライブラリを手動でインポートします。

    ここに画像の説明を入力してください

    b。Pythonスクリプトを実行します。python my_pyqgis_script.pyOSGeo4Wシェルで実行します。私は非常にシンプルなものから始めます。

    ここに画像の説明を入力してください

ワークフローは、数年前にGeoTuxに(スペイン語で)投稿され、現在も機能しています。ご覧のとおり、Pythonスクリプトには環境変数を含めませんが、OSGeo4Wシェルに環境変数を設定します。


こんにちは!私はそれについて疑問を持っています。なぜvar_entorno_osgeo4w.batですか?このすべての行を実行しましたが、この部分ではエラーが発生します。また、これらのヘルプフォーラムを読みましたが、まだインポートqgis.coreエラーが発生しています(osgeo4wシェルで実行)。
バルバラドゥアルテ

それは環境変数を設定するために提供しているファイルの名前だからです。そのため、その.batファイルが置かれているフォルダー(表示されている画像内C:\dllo)に移動し、ファイル名を書き込んでEnterキーを押して.batファイルを実行します。
ゲルマンカリージョ

上記のソリューションを使用しようとしました-my_pygis_script.pyを実行してインポートエラーを取得しようとしました:qgis.coreという名前のモジュールはありません。どうすれば修正できますか?
kflaw

また、pyscripterでqgis.coreをインポートしようとしましたが、別のインポートエラーが発生します
。sip

1
ここで提案されている方法を試すと、「qgis.coreという名前のモジュールはありません」と表示されます。インタプリタとしてqgis / bin内のpython.exeを使用すると、qgis.coreをインポートしようとすると「サイトに名前のないモジュール」エラーが表示されます。pyqgisを使おうとして何時間も無駄にしました。
アレクサンダー

6

同様の問題に取り組んでいるところですが、OSGeo4W \ binフォルダーにpython-qgis.batというバッチファイルがあることに気付きました。これは、Windows 10でのQGIS 2.18.15 x64のOSGeo4Wパッケージベースのインストールの一部です。

このバッチファイルを実行すると、Pythonインタープリターが開きます。import qgis内から正常に実行されます。

このバッチファイルには次の行が含まれています(GermánCarrilloが元の回答で述べたように)。

set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis\python;%PYTHONPATH%

Pythonインタープリターが起動する直前。


これは、手動で環境変数、感謝の設定の痛み脱ぐ
ヒシャム・Zouarhi

これは動作し始めているようですが、C:\ OSGEO4〜1 \ apps \ Python37 \ lib \ site.pyを実行すると「SyntaxError:invalid syntax」というエラーがスローされます
Donny V.

私がそのエラーを受け取った理由は、QGISが使用しているPythonを実行していないためです。今すぐ動作します!
ドニーV.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.