BTOイノベーション

自作PC、BTOパソコン、プログラミングなど初心者目線を大事に

コンソール表示とEXEファイル変換における課題と解決方法

スポンサーリンク

最近は専ら、noteに記入することが多くなりました。思いのほか、短文が書きやすいという点が大きいのかなと感じています。

ChatGPTに聞きながらプログラミングをして、時短を図っております。そちらの内容は主にnoteをみてもらえるとうれしいです。

今回は備忘も兼ねてコードの記述を残しておきたいと思います。

サンプル動画のGIF動画作成支援ツール

実際に作成しているのが動画の切り抜き動画をGIF化することを自前で処理するツールです。無料サイトを探せば出てくると思いますがローカル環境で手軽に作成できるのが良いと考えて作成に至りました。

 

サムネイルやSNSで小刻みに動くものですね。動きがあるものだと訴求が強いと思い着手しました。手前味噌ですが、そのツールに関するnote記事のリンクを貼っておきます。SNSでリツイートしてもらえば、実質無料で見ることができます。とくに応援なくてもサンプルをリンクしてあるのでこんなものが作成できると参考にしてもらえると嬉しいです。(注)18歳未満には刺激的なものになっているので未性年はお控えしてもらえると幸いです。

 

note.com

 

PythonコードからEXEファイルに変換するときにハマった点

PythonコードもChatGPTに聞きながらの作成で紆余曲折を経て、ローカル環境では無事に作成できるようになりました。ブログも時短で進めることが可能になりました。

実際に第三者に配布する場合に提供するファイル形式に悩みました。

Pythonを使っているひとがいれば、そのままファイルをお渡しすれば問題なく稼働することはできます。

しかし、実際にはプログラミングをしているひとはまだまだ少数です。そんなところにEXEファイル化して第三者提供できればと考えました。

 

ネット情報やChatGPTに聞きながら、すんなりEXEファイル化は完成しました。しかし、実際稼働するとこちらが意図した挙動を見せてくれずエラーを返すことが頻発でした。ここに時間を割くわけにはいかず、頓挫しまた再開を繰り返していました。

 

>NoneType object has no attribute 'write'

分かっているひとにとっては簡単な解決になると思いますが、ChatGPTに聞いても解決策が見いだせず延々と悩むことがつづきました。

何が原因か不明だし、AIに聞いても明確な答えが得ることができずでした。

この点を考えると質問の仕方、こちらの意図した答えの引き出し方が重要になります。

 

理由はコンソールの表示をするかどうかの違い

今まで、私かEXEファイルを変換する際に使用していたコードです。

> pyinstaller --windowed ******.py
上記コードはコンソール(作成の過程を表示)を隠すものになります。
できれば、余計なウインドウは非表示にしておきたいと考えて処理をしておりました。
(こちらのコードで現在は処理しています。)


ある時、--windowed を削除したダイレクトに変換するようにしました。
 pyinstaller *******.py

何回も試行錯誤を続けているので何が正解かが分からない状態でした。
このコードで変換したEXEファイルがなぜかGIF動画ができるようになりました。
このときは感動を覚えました。
理由はわからないが生成できたのが進歩でした。

この際、処理の工程が見えるように裏でコンソールが走っていました。(黒いウインドウ)です。これも消すことはできないのだろうかとChatGPTに聞くと可能とのこと。
それで表示している部分をピックアップしているとピンポイントで動画生成にあたる部分が表示形式になっていました。

こちらを非表示にして、--windowedをつけてEXEファイル化すると無事に処理が通るようになりました。
この点がバッティングしてエラーを返していたことが発覚しました。

 

まとめ

パソコンの組み立てもそうですが、まずは最小構成で起動するかどうかが鉄則になります。どこに原因があるかわからないためです。プログラミングにおいても同様のことが言えることがわかりました。