最初に通常インストール(管理者権限が必要)

2月20日のMyNA・JPUG合同勉強会のLTで曽根さんが話していたpgAdmin4、いよいよベータ版が6月7日にリリースされました。今までとガラリ変わってPythonのウェブアプリが基礎で、クライアントはブラウザ/デスクトップアプリ(Qt5 + WebKit)の両方を用意。メジャーバージョンアップというか完全な生まれ変わりです。 pgAdmin(トップページにリリース文)  〃 Download(左側にOS別のリンク) pgAdmin 4 1.0-beta1 documentation OS X用パッケージとWindows用インストーラも既にあり、今回は後者を使ってテスト用のポータブルアプリ化してみました。 最初に適当なWindows 7機に通常インストール(管理者権限が必要)、できたプログラムフォルダをコピーし、若干のランタイムと起動用BATを追加。これで、標準ユーザも使えて自由に移動できます。手順と詳細と結果のzipは次項で。先に通常インストールの経過の画像を並べておきます。見てのとおりなので説明は省略。 ↓ 繰り返しですが念のため。インストーラ実行は管理者権限ユーザでないと出来ず、標準ユーザは不可。

環境変数PYTHONPATHを設定してポータブル化

インストール後のプログラムフォルダは ↓ こんな構成。runtimeというのがデスクトップアプリの本体。別途msvcp120.dllとmsvcr120.dllが必要で、システムになければインストーラがWindows/system32/に展開します。
Program Files
 ┗ pgAdmin 4
    ┗ v1
     ┣ docs
     ┣ installer
     ┣ runtime
     ┣ venv
     ┗ web
ポータブル化にあたり、上記v1以下を任意のフォルダにコピー。そしてmsvcp120.dllとmsvcr120.dllをruntimeに持ってきます。 次に、Pythonのウェブサーバ・アプリを立ち上げるため環境変数PYTHONPATHの設定が必要。インストーラではWindowsのレジストリに書き込みますが、ポータブルアプリのよくある方法として起動用バッチファイルを作り、その中に書きます。例えば ↓ のように。
@echo off
set venv=%~dp0venv\
set pythonpath=%venv%Lib\site-packages;%venv%Lib;%venv%Lib\lib-tk;%venv%DLLs
start "" runtime\pgAdmin4.exe
このバッチを実行。しばらく真っ白な画面のまま ↓ で不安になるけど、QtアプリでWebKit(QWebView)を立ち上げる時はこんなもん。少し待つと… ktkr!pgAdmin3の面影は左側のツリーだけ、かっくいい ≧o≦ なおPYTHONPATHが誤ってると、起動時にこんなエラーとパス設定ダイアログ ↓ が出ます。ここで入力してもいいですがレジストリに書き込まれます。フォルダ位置やPCを変えるとやり直しになって今いち。 ポータブル化したと言いつつ、ウィンドウ位置など各種情報はレジストリと、システムドライブのユーザフォルダ(C:/Users/ユーザ名/.pgadmin)に記録されるので完ぺきじゃないです。PortableApps.comのアプリのように徹底できればいいけど、まぁブラウザ版もあるので今回は見送り。レジストリを消去するならこのコマンド ↓ で。
reg delete "HKEY_CURRENT_USER\Software\pgAdmin Development Team" /f
(追記:フォルダ.pgadminは、起動時に環境変数HOMEを設定することで自由に移動できると判明。詳細は6/20の記事を見て下さい。) 以上、Windows 7 x64の標準ユーザで動作確認しました(pgAdmin自体は32bit)。手順は簡単ですが、踏み台(通常インストール用)のWindows機が手元にない場合もあるのでzipにまとめて置いておきます。 » pgadmin4-1.0-beta1-portable(zip, 97.4MB) OziBoxというオンラインストレージに置いたzipへの直リンクです。virustotalでチェックすると1/67だけMalware siteと出ました。当然ですが利用は自己責任で。