QGIS3でPython入門するための設定

このページでは、QGISに付属している「Python」を使うための設定方法をご紹介します。Pythonが使えるようになると、QGISプラグインを作成することができるようになります。QGISは公開されているプラグインがとても豊富なので、自分でプラグインを作成することは無いとは思いますが、必要になったときのために設定方法を残しておこうと思います。

 

ファイルをコピーする

f:id:Chiakikun:20180901141126p:plain

①Python3を使えるようにするために、python3.dllとpython36.dllをコピーします。『C:\Program Files\QGIS 3.2\bin\』のpython3.dllとpython36.dllを『C:\Program Files\QGIS 3.2\apps\Python36\』にコピーしてください。この2つのファイルをコピーしておかないと、GUIを使ったPythonプログラミングをする際にDLLエラーが発生します。

 

f:id:Chiakikun:20180926192046p:plain

②『C:\Program Files\QGIS 3.2\apps\qgis\python\qgis』フォルダを
『C:\Program Files\QGIS 3.2\apps\Python36\Lib\site-packages\』
にコピーしてください。このフォルダをコピーしないと、Pythonからqgis.core等のライブラリを読み込むことができません。

 

環境変数を設定する

Pythonを使うために環境変数を設定します。ついでなので、QGISで使われている便利なプログラム(GDALやOGR等)を単体で使うための設定もしてしまいます。環境変数の設定については、こちらのページがとても参考になりました。

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

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

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

f:id:Chiakikun:20180901140429p:plain

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

 

f:id:Chiakikun:20180901143136p: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

②『python test.py』と入力して実行して下さい。上の画像のように出力されましたか?

 

PyQTのライブラリを使って、ウィンドウを表示できるかも試してみます。次のコードをコピーして下さい。このコードは

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

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()

 

f:id:Chiakikun:20180901142452p:plain

PowerShellで『python qytest.py』と入力して実行すると、ウィンドウが表示されるはずですが、表示されましたか?

 

開発環境でプログラミングがしたい

 QGISをインストールした環境でPythonプログラミングができるようになりましたが、もう少し本格的なコードを書こうと思うと、どうしてもメモ帳では厳しいと思います。こちらのページではVisual Studioという開発環境を使うための設定を紹介していますので、興味がある方はご覧ください。

chiakikun.hatenadiary.com

 

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