QGISに付属のPython環境でのエラーと対処
- pipを実行すると「unable to load the file system codec」とエラーが出力される
- matplotlibをインポートしようとすると「ModuleNotFoundError: No module named 'tkinter'」とエラーが出力される
- pipでインストールできなかったpythonのライブラリを入れたい
QGIS3.6をインストールした環境でPythonプログラミングにあたり、幾つかハマったエラーがありますので、対処法をメモしておきます。
pipを実行すると「unable to load the file system codec」とエラーが出力される
pipを実行すると「unable to load the file system codec」とエラーが出力された場合は...
pipコマンドをアップグレードします。powershellを管理者権限で起動して、次のコマンドを実行します。
python -m pip install --upgrade pip
pipをアップグレードした後は、エラーが出力されなくなります。
matplotlibをインポートしようとすると「ModuleNotFoundError: No module named 'tkinter'」とエラーが出力される
pythonで次のコマンドを実行すると「ModuleNotFoundError: No module named 'tkinter'」というエラーが出力されます。
import matplotlib.pyplot as plt
Python3.7.0(インストールされているQGISに付属のPythonと同じバージョン)のインストーラーを実行します。オプションのチェックは外して、『Customize installation』を選択してください。
『tcl/tk and IDLE』だけチェックしてNextボタンを押下してください。
オプションは全部外してください。インストール先に指定するパスは、QGISのPythonとは被らないようにして下さい。 インストールが完了したら、下記のファイルを取り出して、「C:\Program Files\QGIS 3.6\apps\Python37」にコピーして下さい。
------------------------------------------------------------------------------
DLLs\_tkinter.pyd → C:\Program Files\QGIS 3.6\apps\Python37\DLLs
DLLs\tcl86t.dll → C:\Program Files\QGIS 3.6\apps\Python37\DLLs
DLLs\tk86t.dll → C:\Program Files\QGIS 3.6\apps\Python37\DLLs
Lib\tkinter 全部 → C:\Program Files\QGIS 3.6\apps\Python37\Lib
libs\_tkinter.lib → C:\Program Files\QGIS 3.6\apps\Python37\libs
libs\libpython37.a → C:\Program Files\QGIS 3.6\apps\Python37\libs
libs\python3.lib → C:\Program Files\QGIS 3.6\apps\Python37\libs
libs\python37.lib → C:\Program Files\QGIS 3.6\apps\Python37\libs
tcl\ 全部 → C:\Program Files\QGIS 3.6\apps\Python37\
------------------------------------------------------------------------------
作業が終わって、インポートが上手くいったら、インストールしたPythonはアンインストールしてください。
pipでインストールできなかったpythonのライブラリを入れたい
pipコマンドでpythonのライブラリをインストールしようとしてエラーが発生してしまった場合、できることならエラーメッセージを読んで対処したいところですが、どうしても無理だった場合、
Python Extension Packages for Windows - Christoph Gohlke
からwhlファイルをダウンロードして、次のようにすればインストールできる可能性があります。
pip install 〇〇.whl
お疲れさまでした。