最低限のモジュールたちここまで来たら普通にPyInstallerでパッケージングするだけですね。Anaconda環境はヤバいさて、肥えに肥えた超絶デブexeファイル、300MBというとこですが、どう考えても道理に合わない肥え方です。確認できる)範囲のモジュールの容量を超えているんじゃないのか?という疑問。結論から言うと、犯人はAnaconda環境でpandasをインストールした時にdependencies(依存関係)として勝手についてくるMKLというモジュールがビビるくらい容量を取っています。(もしくはnumpyも?)をインストールしている方はまず間違いなくPyInstallerを使うと、出力されるexeは軽く200MBは超えていきます。こいつはpipでインストールするとついてきません。的なヤツに陥ることがあります。指定されたモジュールが見つかりません。なったらそれこそエラー回避するだけで一日かかりますので、Anacondaを捨てた方がいいです。具体的にはAnacondaじゃないPython環境を一個作っておくという事ですね。システムの環境変数関係からもAnacondaの配下Pathは全て無効にします。消したら戻すときめんどくさいので、適当に余分なマーク付けてpathを無効化するくらいでいいと思います。bytes)3.8upのPythonを使っていた際に遭遇。解決:Python3.8を捨てる特にこだわりがなければ3.8を一旦捨てましょう。3.8独自の書き方を使ってたら直してください。3.7台は全然使えます。海外フォーラムでも「直ったよ」って言ってるヤツもいれば「まだエラー出るやんか!」って言ってるヤツもいてまだまだカオスです。一応公式アナウンス的には直ったと言ってるようですが、僕はそう言われてる後にこのエラーに遭遇しました。指定されたモジュールが見つかりません。Anaconda環境で遭遇。上でも述べましたがPyInstallerはAnacondaから切り離された環境で使うのがベストです。いばらの道を進みたい方がいたら下に解決法を載せておきます。Pathに追加とりあえず、Pathが通ってないだけです。setuptoolsアップグレードしましょう。directoriesGUIアプリを作ってるときに出てくる問題。PyQt5そもそもPyQt5がなかっただけならこれで解決しますが、たまにあるのにこのエラーが出る時があります。これもね、Anaconda環境の話ですが、絶対PyQtあるのにこのエラー出て悩みました。C:/~~/~~/qt_1535195524645/_h_env/Library/pluginsその場合多分こんな感じで下にPathが書いていると思います。なんも考えず、その通りのディレクトリ構造を作ったら解決しました。C:/~~/~~/qt_1535195524645/_h_env/Library/pluginsという階層に何も入れず、ただ空のフォルダを作成するだけです。byte見飽きましたね。文字コード系のエラーです。系でファイルを保存しないShift-JISはWindows標準の文字コードですので、メモ帳とかで編集したり保存するとディフォルトでその形式で保存されます。心当たりがあったらやめましょう。エラーを起こしてますので、そこを修正すると治ります。C:~~devLibsite-packagesPyInstallercompat.pyこんな感じのディレクトにcompat.pyがあります。out.decode(encoding)の箇所を探します。僕のファイルの状況では427行目、574行目の2か所でした。該当箇所を以下のコードに置き換えます。errors='ignore')これで文字コードエラーは無視されます。○○exeファイル化したアプリを起動しようとするとなんか立ち上がらないパターン。これに関してはあらゆる可能性が考えられるのですが、「こんなん普通わからんやろw」ってヤツだけ紹介します。–noconsolewindowsを対象としたアプリケーションでsubprocessモジュールによる処理を入れた時に遭遇。それまでは普通に動いていたアプリケーションが、subprocessモジュールを組み込んだ直後のコンパイルからこの現象が発生し立ち上がらなくなりました。「直前まで動いていた」という状況がなければ原因特定不可能レベルの案件です。解決:OsErrorをハンドリングする参考:https://github.com/pyinstaller/pyinstaller/wiki/Recipe-subprocess原因を読むには読んだんですが、ちょっといまいち意味は分かりませんでした。–noconsoleで封じ込めようとしてエラーが出る?的な感じですかね。そのエラーをハンドリング出来てなかったのでクラッシュしたみたい。僕が使っていたのはsubprocess.check_output()だったのですが、一例として。ret上記の関数を作って、subprocess呼び出し時のメソッド引数にキーワードで渡して、OsErrorをハンドリングすると回避できます。passとりあえずこれでエラー回避できました。参考ページのコード自体はpython2向けに書かれているようですがpython3.7.4で動くのを確認しています。余分な時間取りたくない方はメモ必須です。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。date*日本語が含まれない投稿は無視されますのでご注意ください。