- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:QGISを外部Pythonで制御したい)
QGISを外部Pythonで制御したい
このQ&Aのポイント
- QGISを外部Pythonで制御する方法についての質問。
- 質問者はプラグインのPythonコンソールでは動作するが、外部のPythonからの制御ではNameエラーが発生してしまうという問題がある。
- 回答者はOSGeo4W環境での環境変数の設定が必要であるとアドバイスしているが、質問者はそれでもうまく動作しない。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#259607
回答No.1
Pythonの対話型コンソールで import qgis と入力したらインポートに成功しますか? 失敗する場合は環境変数の設定がうまくできていません。スタートメニューのQGIS ValmieraフォルダにあるOSGeo4W Shellを起動し、そこで環境変数設定の追加を行った上でPythonを起動して下さい。 またQGISのGUIに関する機能をPythonから利用するにはQt applicationを作成する必要があります。その上にウィジェット(ウィンドウ)を作成し、シグナル-スロットの接続等をしてGUIを構築しますが、それにはQtやPyQtの知識が必要です。それについては入門書・サイトにあたって下さい。スタンドアロンのPython QGISアプリケーション作成についてはネット上を探せばサンプルコードが見つかるでしょうし、PyQGISのプログラマガイド(英語)も出版されていますよ。 QGISを外部から利用したいとのことですが、QGISアプリケーション上でPythonコンソールやScript Runnerプラグインを利用してスクリプトファイルを読み込んで実行する方が簡単なアプローチであり、場合によってはそれで十分だと思いますが。参考までに。
お礼
ご回答、ありがとうございます。 Python対話型コンソールで import qgis と入力すると、importError: No module named qgis と出ます。QGIS Valmieraフォルダ中のOSGeo4W.batを起動して、教えて頂いた3行の環境変数設定を実行してみましたがNGでした。OSGEO4W_ROOTの長名表示、短名表示ともにNGでした。また、プロンプトをC直下としても同じでした。import qgisもiface=qgis.utils.ifaceもNGです。環境変数設定後のShellの表示例は以下の様です。 C:\Program Files (x86)\QGIS Valmiera>set QGIS_PREFIX_PATH=\PROGRA~2\QGISVA~1:\=//apps/qgis C:\Program Files (x86)\QGIS Valmiera>set PATH=C:\Program Files (x86)\QGIS Valmiera\\bin;C:\Program Files (x86)\STMicroelectronics\st_toolset\asm;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\ProgramFiles\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microchip\MPLABC32 Suite\bin;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\QGIS Valmiera\bin;C:\Program Files (x86)\IronPython 2.7;C:\Python27;C:\Program Files (x86)\QGIS Valmiera\\apps\msys\bin;C:\Program Files (x86)\QGIS Valmiera\\apps\Python27\Scripts;\PROGRA~2\QGISVA~1\apps\qgis\bin C:\Program Files (x86)\QGIS Valmiera>set PYTHONPATH=\PROGRA~2\QGISVA~1\apps\qgis\python 私の目的は、VisualBasicの演算結果をQJISの地図上に反映する事です。C#は全く不明なので(VBも半年未満の初心者)IronPythonが.NETに対応していると言う事を知り、IronPythonの資料が少ないので、まずはPythonでQGISの制御に慣れようとしている所です。PCに詳しい訳ではないので私には無理かとも思えて来ましたが。。。