1年ほど前に、とあるPythonスクリプトを作成しました。このスクリプトの話をYouTubeにアップロードしておいたところ、たまに問い合わせを頂きます。
![](https://blog.boochow.com/wp-content/uploads/prologue-and-minilogue-xd-160x120.jpg)
必要に迫られて作成したもので、割とやっつけ仕事(あまり綺麗ではないコード)ではありますが、同じように必要に迫られる方はときどき居るようで、その多くは、スクリプトをWindowsで動かしたい/動かし方がわからない、といった内容です。
ここ最近も連続して問い合わせを頂いたので、このPythonスクリプトをWindowsで動かす方法を調べてみました。
Python自体は、WindowsでもMicrosoft Storeから簡単にインストールできました。Python本体とIDE(IDLE)が使えるようになります。
ですので、ITスキルがあれば、あとはGitHubのページからスクリプトをコピーして、
メモ帳か何かに貼り付けて、コマンドプロンプトで実行すれば動くはずなんですね。
でも上のやり方でも、自力で方法を探して実行するのは普通の人にはなかなかハードルが高いです。
さらに、私のスクリプトがWindows環境では不完全(ファイルパスを絶対パスで指定しないと動作しない)という問題もあり(修正済み)、Windowsで動かすのは普通の人にはなかなか難しいということが分かりました。
そこで、試しに「PyInstaller」を使って、このスクリプトをWindowsのコマンドに変換してみました。PyInstallerはこの目的では最もメジャーなツールのようです。
この方法では、とりあえずはPythonスクリプトを「コマンドプロンプトから実行できるexeファイル」に変換することができます。パラメータ等も全部コマンドラインの引数で指定します。GUIが付いたりはしません。
以下、手順です。なお、PyInstallerについてはGUIフロントエンドが付いた「auto-py-to-exe」を使ってみました。
![](https://miro.medium.com/v2/resize:fit:1200/1*BCdIwODhjS9IhLpYoXH38w.png)
(1)PythonをMicrosoft Storeからインストールします。
(2)変換用のフォルダを作成し、そこにEXEに変換したいPythonスクリプトを置きます。
(3)pipenvをインストールします。PyInstallerは利用可能なパッケージを全てEXEファイルに入れてしまうらしいので、無駄に大きな実行ファイルにしないために環境を分けます。
C:\Users\boochow>pip install pipenv
(4)pipenvで仮想環境を作ります。コマンドプロンプトで変換用のフォルダをカレントディレクトリにします。
pipenvはPATHの通っていないフォルダに置かれてしまい、コマンドプロンプトから直接起動できません。(その旨、インストール中にWARNINGが出ます。)
なので、代わりにPythonコマンドからパッケージを実行します。
C:\Users\boochow\Documents\pyinstaller-test\prlg2mnlgxd>python -m pipenv --python 3.10
ちなみにpipで取得したファイルが入るフォルダは
C:\Users\boochow\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_ごちゃごちゃした文字列\LocalCache\local-packages\Python310\Scripts
という名前になっています。
(5)続けて(ディレクトリを変えずに)auto-py-to-exeをインストールします。
C:\Users\boochow\Documents\pyinstaller-test\prlg2mnlgxd>python -m pipenv install auto-py-to-exe
ちなみに仮想環境のファイルは、Windowsでは
C:\Users\user-name\.virtualenvs
の下に置かれるようです。
(6)これで準備が整いましたので、auto-py-to-exeを起動します。
C:\Users\boochow\Documents\pyinstaller-test\prlg2mnlgxd>python -m pipenv shell
(prlg2mnlgxd-HPJOiGRn) C:\Users\boochow\Documents\pyinstaller-test\prlg2mnlgxd>auto-py-to-exe
(7)あとは変換したいスクリプトを指定して、Convertボタンを押すだけです。実行ファイルを1つのファイルにしたいときは、「One File」を指定します。
変換してできたスクリプトは5.8MBほどでした。
こんな感じでコマンドプロンプトから利用できます。
C:\Users\boochow\Documents\pyinstaller-test\prlg2mnlgxd>cd output
C:\Users\boochow\Documents\pyinstaller-test\prlg2mnlgxd\output>.\prlg2mnlgxd.exe ..\001_Runner_Brass.prlgprog
Export to: C:\Users\boochow\Documents\pyinstaller-test\prlg2mnlgxd/001_Runner_Brass.mnlgxdprog
Info: Runner Brass POLY SAW SAW NOISE
C:\Users\boochow\Documents\pyinstaller-test\prlg2mnlgxd\output>
使い終わった仮想環境の削除もpipenvで行います。
C:\Users\boochow\Documents\pyinsaller-test>python -m pipenv --rm
なお、このPyInstallerが何をやっているのかについては、以下の記事が参考になります。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UHlJbnN0YWxsZXIlRTMlODIlOTIlRTQlQkQlQkYlRTMlODElQTMlRTMlODElQTYlRTMlODElQkYlRTMlODElOUYmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPWNmNjNkZTY2N2FhODFhYTRmOTdkZTcwNmE1MTg5NjMz&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBUYWthbWlDaGllJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1kYmYyOWUwZjc2ZmE0ODBjYTljOThmY2ExYmM2ZDcyZQ&blend-x=142&blend-y=486&blend-mode=normal&s=7dcc066edb6d6982c1e3f8122590a1c7)
コメント