QGIS3に付属のPython等を使えるようにするためのパス設定

このページでは、QGISに付属しているPythonやコマンドを使うための設定方法を紹介しています。コマンドが使えるようになると、ファイルの変換や等高線作成等のちょっとした作業をバッチ処理できたり良いこと尽くめなのでおすすめです。このページでは、QGIS3.6を使用しています。


環境変数Pathを設定する

PythonやGDALやOGR等のコマンドを使うために環境変数を設定します。環境変数の設定については、こちらのページがとても参考になりました。

【PowerShell】環境変数を設定する | ほそぼそプログラミング日記

PowerShellを起動する

f:id:Chiakikun:20180901140429p:plain

PowerShellを起動します。検索窓?(下の赤丸部分)に『powershell』と入力すると、いくつか候補が出てくるので上の赤丸部分のPowerShellを選択します。

設定のためのコード

下記のコードをコピーします。

    $oldSystemPath = [System.Environment]::GetEnvironmentVariable("Path", "User")
    $oldSystemPath += ";C:\Program Files\QGIS 3.6\apps\qgis\bin"
    $oldSystemPath += ";C:\Program Files\QGIS 3.6\apps\Python37"
    $oldSystemPath += ";C:\Program Files\QGIS 3.6\apps\Python37\Scripts"
    $oldSystemPath += ";C:\Program Files\QGIS 3.6\apps\Qt5\bin"
    $oldSystemPath += ";C:\Program Files\QGIS 3.6\bin"
    [System.Environment]::SetEnvironmentVariable("Path", $oldSystemPath, "User")
    [System.Environment]::SetEnvironmentVariable("QT_QPA_PLATFORM_PLUGIN_PATH", "C:\Program Files\QGIS 3.6\apps\qt5\plugins", "User")

 

PowerShellにコードを貼り付ける

f:id:Chiakikun:20190428234517p:plain

コピーしたコードを張り付けて、PowerShellを一度閉じて下さい。


Pythonプログラミング

ソースコードを書てみる

ここまでの設定で、Pythonが使えるようになっているはずですので、簡単なプログラムを実行してみます。PowerShellを起動して、次のコマンドを入力してメモ帳を起動してください。

notepad test.py

メモ帳が起動したら、次のコードを張り付けて保存して下さい。

import numpy
x = 10
y = 10
z = 10
w = 1

mat_heikoido = numpy.matrix([[1, 0, 0, 10], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]])
vec = numpy.matrix([[x], [y], [z], [w]])

print(mat_heikoido*vec)

 

プログラムを実行してみる

f:id:Chiakikun:20180901141752p:plain

PowerShellに次のように入力して実行してみてください。上の画像のように出力されましたか?

python test.py

 

PyGTも使ってみる

PyQTのライブラリを使って、ウィンドウを表示できるかも試してみます。次のコマンドを入力してメモ帳を起動してください。

notepad qttest.py

次のコードをコピーして下さい。このコードは

PyQt5とpython3によるGUIプログラミング[1]のページで紹介されていたコードを使用させていただきました。コピーしたらメモ帳に貼り付けて保存して下さい。

import sys
from PyQt5.QtWidgets import *

def main():
app = QApplication(sys.argv)
w = QWidget()
w.resize(250, 150)
w.setWindowTitle('Window01')
w.show()
sys.exit(app.exec_())

if __name__ == '__main__':
main()

 

PyQTを使ったプログラムも実行してみる

f:id:Chiakikun:20180901142452p:plain

PowerShellで次のコマンドを入力して実行すると、ウィンドウが表示されるはずですが、表示されましたか?

python qttest.py

Plugin開発がしたい

QGISをインストールした環境でPythonプログラミングができるようになり、QGISプラグイン開発に手を出したくなるところですが、そのためにはもう少し設定が必要です。下のページではプラグイン開発が容易になるプラグイン「Plugin Builder」の紹介をしています。

chiakikun.hatenadiary.com

 

下のページでは、Visual Studioという開発環境を使って、プラグインデバッグができるようにする方法を紹介していますので、興味がある方はご覧ください。

chiakikun.hatenadiary.com


最後までご覧頂き、ありがとうございました