Iphoneは軽いので何時も散歩のお供である。カメラも付いているので写真も撮れる。そのカメラで撮った写真である。


Pythonで作ったMakeCaptionWithLogo.pyをPythonに不案内なユーザにも使えるようにexe化することにした。
@echo off
pyinstaller --onefile --exclude-module numpy \
--exclude-module ..... --exclude-module ..... \
--exclude-module ..... --exclude-module ..... \
--noconsole --icon=TOMATO.ico MakeCaptionWithLogo.py
ここで–exclude-moduleオプションはexe化で排除しても無害なモジュールを書く。numpyは大きなモジュールでプログラムでnumpyを使っていないときには積極的に排除する。その他のオプションの説明はここにある。
これでdistフォルダにMakeCaptionWithLogo.exe
ができる。これがこのファイル1つで配布可能なexeファイルである。サイズは約10MB。排除オプションを外すとサイズは約30MB。排除オプションは有効であることがわかる。
ごつい表題であるが、いつも使っているPythonのプログラミング開発環境を仮想環境でもそのまま使いたということである。
win10のコマンド・プロンプト(CMD)の窓で
python -m venv [環境を作成したいパス]
ここの[環境を作成したいパス]はユーザ領域で構わない。このpathの中にあるScriptsフォルダにあるactivate.batというバッチファイルをCMDの中で実行すると仮想環境が実現する。詳しくはここを参照。
そのために実環境を向いたIDELと別に仮想環境を向いたIDELを作る。まずインストールしたIDELのショートカットを新規につくりそれが仮想環境を向いていることを示す任意の名前する。そのプロパティを開き[リンク先]のpath2つを変更する。
変更前
"C:\.....\Python310\pythonw.exe" \
"C:\.....\Python310\Lib\idlelib\idle.pyw"
変更後
"C:.....\PythonEnv\MyEnv\Scripts\pythonw.exe" \
"C:.....\PythonEnv\MyEnv\Scripts\sample.pyw"
ここでsample.pywは以下を中身とするファイルでフォルダScriptsに保存したものでありIDLEが起動される時に実行される:
from idlelib.pyshell import main
main()
詳しくはここを参照のこと。
このIDELを使うことによって実環境の時とほぼ完全に同じ開発環境で仮想環境下でのPythonプログラミングができる。
必要があって展覧会に展示する作品に添付するcaptionを自動生成するプログラムを作ってみた。問題はtkinterで作った画面を画像ファイルにして印刷する工程である。
tkinterのcanvasウイジェット上にcaptionのイメージを作成し、このイメージを画像ファイルとして保存する。canvasウイジェットには自身が作ったイメージをpostscriptファイルにする機能があるが、日本語に取り扱いができない。そこで試みたことは画面の部分スクリーンショットで、canvasの部分を切り取って画像ファイルとして保存する。この方法を使った。
この部分の処理はPILモジュールのimagegrabとwin32guiを使った。win32guiでcanvasを含むwindowを特定し、imagegrabでその窓のcanvas部分だけを切る取ることをした。
作成例
ユーザインタフェイスは以下のような感じ:
全体のプログラムはここで見れる。
「過去のない男」、浮き雲」、「希望のかなた」、「街のあかり」、「コントラクト キラー」とフィンランドのアキ・カウリスマキ監督の映画を観た。
「過去のない男」、浮き雲」、「街のあかり」はこの監督の「敗者三部作」と呼ばれているもの。
様々な不幸な出来事があり社会的敗者になってしまった主人公たちがなんとかして明かりを見出そうとす姿を描いた作品である。不条理な社会を淡々と描いているが、それらに遭遇した人間たちの悪戦苦闘に寄り添う視点もある。