2015/04/07

QGIS ポータブル版の Python を単独で使う準備

[QGIS][Python][実行環境]
昨日セットアッブした QGIS ポータブル版には ↓ のとおり Python 2.7 が含まれているので、これを単独で使うためのバッチファイルを一つ作り、同梱されているパッケージを調べてみました。Windows 7 32bit で、ファイル一式を外部ディスクに入れて実行し、ゲストユーザでも問題なく動作。Python のポータブルな実行環境が QGIS のおまけに付いてきた感じです。


↓ こんなバッチファイルを、ポータブル版 QGIS フォルダの一番上に置きました。

@echo off
cd QGIS/bin
set PYTHONHOME=../apps/Python27
set PYTHONPATH=../apps/Python27/Lib
set PATH=%PYTHONHOME%
python
pause


↓ バッチファイル実行で Python の対話モードになります。最後の三行は Hello World の代わりに現在日時を出したところ。コンソールのクリアは import os; nul = os.system('cls') で。(参考 : baruthのメモblog : コンソール画面のクリア 他)os.system('cls') の戻り値を変数に入れないと、結果のゼロが出力されます。


↓ バッチファイルで環境変数 PYTHONPATH をセットしたフォルダ。ここにパッケージがいろいろ入っています(ファイルサイズ 185 MB)。前にシステムドライブに入れた Python 3.2 では、win32com 以外ほとんどパッケージを入れず 23 MB 程度でした(二枚目の画像)。



↓ モジュール一覧を出そうと help('modules') を実行したら、psycopg2 のテスト中?にデータベース接続できず強制終了しました。role の所は Windows のユーザ名。詳細は不明で、いずれ psycopg2 で PostgreSQL に接続する際の課題とし、モジュール一覧は別の方法で得ます。


Study08.net さんの記事「利用可能なモジュール一覧を取得する」を参考に、pkgutil を使ってモジュール名一覧をリストに入れ、ドライブのルートにファイル出力しました。↓

import pkgutil
module_names = []
for m in pkgutil.iter_modules():
module_names.append(m[1])

module_names.sort()
f = open('/qgis_python_modules.txt','w')
f.write('\n'.join(module_names))
f.close()


↓ 結果。475 個もありました。参考まで、ファイル本体(5 KB)も置いておきます。



psycopg2 は先ほどエラーが出たのですんなり使えるか分かりませんが、メジャーな NumPy, SciPy, matplotlib あと win32com もあるので、時間があれば試します。
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。