LoginSignup
7
4

More than 3 years have passed since last update.

python3.Xのファイルをpyinstallerで実行ファイル化(.exe化)したらめっちゃ再帰した

Last updated at Posted at 2019-04-24

はじめに

pythonファイルを実行ファイル(exe化)にしたい!
そんなあなたのための記事です.

環境

OS:windows 10 Education
pythonバージョン:python3.6.5(anaconda)

やること

やることはざっとこんな感じです.
1. pyinstallerのインストール
2. 実行
3. .specの書き換え
4. .specでビルド
5. ディレクトリの作成
6. コピー
7. .specでリビルド

起きること

めっちゃ再帰する

maximum recursion depth exceeded while calling a Python object

というエラー文が出ます.
出なければ何も問題はありません(たぶん).

PyQt5がない

Cannot find existing PyQt5 plgin directories Paths checked: ディレクトリパス

というエラー文が出ます.
でなければ何も問題はありません(たぶん).

解決策

やることの詳細を交えて,問題の解決策を書いていきます.

めっちゃ再帰する

この2つの記事を参考にしました.
参考1参考2

  1. pyinstallerのインストール
pip install pyinstaller

だけです

  1. 実行
pyinstaller pyファイル名 --onefile --noconsole

 ※--onefile:パッケージを丸っと1つのファイルにする,与えないとどうなるかやってないからわからない
 ※--noconsole:実行時にコンソール画面を出さない,与えないとコンソールの黒い画面が出てきます.
  プログラムからの出力としてコンソール出力を想定しているなら,与えないほうが良いです.
 これは実行すると【めっちゃ再帰するね】というエラーが出ます.
 そこで次の2つです.

 3. .specの書き換え
 2.の手順でpyファイル名.specが生成されていますのでそれを開きます.
 一番上に# -*- mode: python -*-とあります.
 二行目,三行目に次の二行を足します.

import sys
sys.setrecursionlimit(10000)

 4. .specでビルド

pyinstaller pyファイル名.spec

 ※ビルドするのは.specファイルです.

PyQt5がない

後半はこの記事を参考にしました.

5. ディレクトリの作成
 4.で【PyQt5がないからディレクトリパスを確認しろ】と出たら確認してみましょう.
 本当にありません.
 なければ作るまでです.
 指定されたと通りにフォルダを作成していきます.

6. コピー
 中身がないと困りますので,コピーします.
 anacondaのライブラリからプラグインを持ってきます.
 Anaconda3\**\Library\pluginsに必要なファイルたちがいそうです.
 ※\**\の部分は人やバージョンによって違うかもしれません.
 自分の場合C:\Users\ユーザ名\Anaconda3\Library\pluginsのファイルを
 C:\qt64\qt_1544645195969\_h_env\Library\pluginsに持ってきました.

7. .specでリビルド
 これでうまく行くはずです.リビルドしてみましょう.

pyinstaller pyファイル名.spec

 ※ビルドするのは.specファイルです.
 コンソールに

Building EXE from EXE-00.toc completed  successfully

的な出力が出れば完了です.

おわりに

参考にした記事の作者の皆様,ありがとうございました.
両方をまとめた記事がなかったので,備忘録も兼ねて書いてみました.
誰かが救われればと思います.

おわらない

生成したexeファイルを他のPCで動かすと...

動かない

というトラブルが発生しました.

そこはQiitaさん.
ソリューションはちゃんとありました笑
ここです!本当にありがとう

原因

1.Intel MKLが悪さをしている
2.Pandasが悪さをしている

対処法

1.anacondaの仮想環境作成時にライブラリを指定
2.pyinstaller走らせる時にコマンドを追加する

ここの解決方法その2に書いてあります.

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4