pyinstallerで32bit版pythonを使う

未だに残り続ける32bitOS

Windowsでややこしい設定なしに簡単にiksm_sessionを取得してサーモンランの記録を残せるSalmonRec for Winだったのですが、先日何やら動作しないという報告を受けました。

おかしいなと思ってその方と会話を進めてみるとその方は32bit版のWindowsを使われていることが明らかになりました。

確かに自分は64bit環境しか持っていなかったので、その方面でのデバッグができておらず「盲点を突かれた!」という感じでした。

というか、まだ32bitOSって現役なのか!!(笑)

32bitOSの問題点

いくつかあるんですが、大雑把に説明します。

64bit版アプリが動作しない

恐らくこれが最も困るデメリット。

最近は64bit版しかサポートしていないツールやソフトも多く、32bit版OSだと困る場面も増えてきています。

メモリが4GBまでしか使えない

これも最近のパソコンは標準的にメモリを8GBくらいつんでいるので、市販のPCですらほとんど32bit版OSは見かけません。

動画エンコードなどはメモリをたくさん消費しますが、32bitOSだとそのときに4GBしかメモリが使えないので困るというわけです。

例えば64bit版だと、最廉価であるHomeですら128GBまでのメモリをサポートしています!!!

32bit版アプリをつくってみた

とはいうものの、少し古いパソコンであれば未だに32bitOSしか搭載していないというのも頷けます。

もしもメモリが4GB以上搭載されているなら、いますぐ64bit版に変更したほうが良いです。

Windows10であれば公式サイトから32bit版を64bit版にアップグレードできるツールがあるので是非試してみてください。

詳しいやり方については、以下の記事が詳しいです。

https://oxynotes.com/?p=11940

pyinstaller

PythonのコードをWindowsで直接実行できるexeに変換してくれるスグレモノ。

今回はこれを使って32bit版SalmonRecを作成しました。

導入にあたって、仮想環境が必要なのでAnacondaを使いました。Anacondaについては以下の記事の冒頭を参考にどうぞ。

Anacondaを起動したら、まずは動作モードを32bitに強制変更します。

32bitモードへの変更方法は以下の記事を参考にさせて頂きました。

https://qiita.com/kjmatu/items/d9299651980e9827e891
$ set CONDA_FORCE_32BIT=1
$ conda create -n 32bit python=3.7
$ conda activate 32bit

これで32bitモードで仮想環境が有効化できました。

次にSalmonRecに必要なモジュールをインストールしていきます。

pipとどちらでインストールするか迷ったのですが、とりあえずanacondaでインストールしました。

$ conda install requests pyinstaller

ここまでできたら、あとは今まで通りexeにパッケージ化するだけです。

$ pyinstaller iksm_session.py --onefile --icon=icon.ico

オプションは全てのファイルを一つにまとめる “–onefile” とexeファイルのアイコンを設定できる “–icon” を使いました。

完成したやつ

というわけで、(多分)32bitOSでも動作するSalmonRecとiksm_session取得ツールが完成しました。

GUIもなんにもないただの黒い画面がでてくるだけなので扱いには注意です。

TokenとURLから再生成するようなツールに書き換えたいので、そのうちまた新バージョン多分リリースします…

記事は以上!!!!