QGIS3に付属のPython3でのエラーと対処

QGIS3.2をインストールした環境でPythonプログラミングにあたり、幾つかハマったエラーがありますので、対処法をメモしておきます。

注意!問題④でPythonQGISのappフォルダに上書きインストールすると、QGISが起動しなくなるため、修正しました。2018/09/13

 

問題①

「 python : 用語 'python' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。」とエラーになる。

解決策

環境変数PathにPython.exeがインストールされているフォルダを設定する。設定方法はこちらが参考になると思います。

 

問題②

次のコードを実行しても、何も表示されない。

import sys
print(u"ハローワールド")

解決策

「C:\Program Files\QGIS 3.2\bin\python36.dll」を「C:\Program Files\QGIS 3.2\apps\Python36\」にコピーしないと、エラーも何も表示されない問題が発生するようです。こちらを参考に設定してください。

 

問題③

Plugin Builderで作成した雛形のuiファイルをpythonのソースに変換しようとpyuic5を実行したら、「ImportError: DLL load failed: 指定されたモジュールが見つかりません。」とエラー出力される。

解決策

「C:\Program Files\QGIS 3.2\apps\Qt5\bin」をPathに追加していないか、「Python3.dll」のコピーをしてください。こちら こちらが参考になると思います。

 

問題④

pipを使うと「Fatal error in launcher: Unable to create process using '"'」とエラー出力される。

解決策

python -m pip install -U pip」を実行してpipを更新する。

 

問題⑤

次のPytonのコードを実行しようとしてImport DLLエラーが出力される。

import gdal,osr

解決策

https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal』から
『GDAL-2.2.4-cp35-cp35m-win_amd64.whl』をダウンロードして解凍します。
展開されたファイルに『gdal202.dll』があるので、それを「C:\Program Files\QGIS 3.2\bin」にコピーすると、エラーは出なくなります。

 

問題⑥

次のPythonのコードを実行しようとして「ModuleNotFoundError: No module named 'tkinter'」とエラー出力される。

import matplotlib.pyplot as plt

解決策

pipでktinterをインストールしようとしてもエラーになります。Python3をインストールして、下記のファイルを取り出して、「C:\Program Files\QGIS 3.2\apps\Python36」にコピーして下さい。

------------------------------------------------------------------------------

DLLs\_tkinter.pyd
DLLs\tcl86t.dll
DLLs\tk86t.dll
Lib\tkinter 全部
libs\_tkinter.lib
libs\libpython36.a
libs\python3.lib
libs\python36.lib
tcl\ 全部
python.exe
python3.dll
python36.dll
pythonw.exe
vcruntime140.dll

------------------------------------------------------------------------------

 

お疲れさまでした。