Pythonをexeにパッケージ化するように頼むのはやめましょう!(最終版)

多くの学生はPyプログラムをexeファイルにパッケージ化する方法を知っていますが、パッケージ化後に多くの人が気づきました:単純なPyプログラムはexeファイルにパッケージ化され、数百メガバイトにプログラムされます。今日は、Pythonをパッケージ化する方法を紹介します。 10メガバイト以上のスクリプト?

今日、Xiao Wuは、Pythonをexeにパッケージ化する方法と、Pythonを十分に小さくする方法という包括的な要約を提供します。

1つの標準パッケージ

現在、より一般的なパッケージングexeメソッドはPyinstallerを介して実装されていますが、この記事でもこの従来のメソッドを使用します。この領域に精通している場合は、この記事の後半に直接スライドできます。

1.なぜ梱包する必要があるのですか?

ご存知のとおり、PythonスクリプトはPythonがインストールされていないマシンでは実行できません。

次に、データ分析/自動化されたオフィス用の小さなスクリプトを作成した場合、それを同僚と共有したいのですが、彼女のコンピューターにはPythonがインストールされていません。

このとき、スクリプトをexeファイルにパッケージ化してWeChatで送信すると、Pythonインタープリターがコンピューターにインストールされていなくても、exeプログラムを実行できます。綺麗じゃないですか?

 

 

(もちろん、Pythonのインストールを手伝ってMiss Sisterとの関係を構築したい場合は、私が言っていないように扱ってください)

2.Pyinstallerをインストールします

まず、最初にPyinstallerをインストールし、cmdで直接pipコマンドを使用する必要があります

pip install pyinstaller 

ネットワーク速度が遅すぎる場合は、国内のソースに切り替えて速度を上げることができます。この記事の他の部分では、国内のソースを直接使用しているため、繰り返しの注意はありません。

 

 

pip install -i https://pypi.douban.com/simple/ pyinstaller #douban source 
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller#清华源

3.Pyinstallerのパッケージ化手順

ここでは、例として、Wordの以前のPython自動バッチ書き込みコードを毎日取り上げます。スクリプトpy_word.py、処理するworkbook.xlsx、および準備したソフトウェアアイコンイメージchengzi.icoをコンピューターのF:\ py_wordディレクトリに配置します(興味がある場合は、記事の最後にダウンロードできます)。 )))

 

 

1. CMDは、ファイルを置いたディレクトリに切り替わります

 

 

2.コマンドPyinstaller-F -w -i chengzi.ico py_word.pyを実行します。実行プロセスが非常に長いため、動画の記録はありません。

実行後、現在のディレクトリにさらにいくつかのフォルダがあることがわかります。その中でdistという名前のフォルダを開きます。

py_wordという名前のexeアプリケーションが生成され、アイコンも設定したオレンジ色のパターンであり、成功の半分のようです。

それを実行して、通常の単語の日報を生成してみてはどうですか?

正常に実行されますが、ファイルが少し大きい(339M)

 

 

4.Pyinstallerパラメーターの詳細な説明

実行したばかりのコマンドといえば

Pyinstaller -F -w -i chengzi.ico py_word.py

Pyinstallerのパラメーターについて説明します。-Fパラメーターは、独立した実行可能プログラムの作成を表します。

-wは、プログラムの起動時にコマンドラインが開かないことを意味します。-wパラメータを追加しない場合、ブラックホールコンソールウィンドウが表示されます。たとえば、今のスクリプトでprint( 'Hello World!')の行を追加し、-wパラメーターを入力しないでください。そうしないと、実行時にエラーが報告されます。結局のところ、Hello World!はコマンドラインに出力されます。さらに、-wパラメーターはGUIインターフェースで非常に役立ちます。

最後の-ichengzi.icoは、独自のアイコンパターンを設定することを意味します。これは、デフォルトのパッケージ画像が以下に示すようなものであるためです。このパラメーターは、-icon = chengzi.icoと書くこともできます。

 

 

最後に、簡単な要約:

Pyinstaller -Fpy_word.pyパッケージexePyinstaller -F -wpy_word.py

コンソールなしのパッケージ

Pyinstaller-F -w -i chengzi.icopy_word.pyパッケージ指定されたexeアイコンパッケージ

上記の3つはより一般的に使用されるパラメーターであり、他のパラメーターについては以下の表で詳しく説明します。

 

 

Pyinstallerパラメータリスト

5.ico画像の生成

自分で作ったソフトウェアに自分のアイコンを付けるのが好きですが、icoの写真はどこにたくさんありますか?

1つは専用のico画像Webサイトを見つけることですが、それらは非常に小さく、画像ライブラリも非常に小さいです。

もう1つは、自分で生成できることです。他の形式の写真をico形式で共有するためのWebサイトは次のとおりです。https://app.xunjiepdf.com/img2icon/

2、圧縮とパッケージング

さて、友達

最もエキサイティングな瞬間には、生成されたばかりのexeが大きすぎて、300Mを超えるソフトウェアプログラムをWeChat経由で送信するには多大な労力が必要です。

スペックファイルのカスタムパッケージの変更、pipenv仮想環境、オープンソースのupx圧縮の使用など、さまざまな方法も試しましたが、プロセスが面倒であるか、成功率が高くない(圧縮が失敗する)ことがよくあります。 、すべて顔によって異なります)。

そして、私が共有したいのは、私が使用してきた最も単純で最も成功した方法、つまり仮想環境を作成するためのcondaです。

 

 

1. Pythonパッケージが大きいのはなぜですか?

圧縮してパッケージ化する前に、Pythonのパッケージ化が大きすぎる理由について簡単に説明しましょう。

Pythonパッケージのexeは、サイズが大きいだけでなく、非常に低速です。インタープリター型言語はほとんどこのようなものですが、Pythonは特に顕著です。大きくて遅い問題の問題を解決するには、C、C ++、さらにはVBなどのコンパイルされた言語のみがはるかに優れています。最小サイズはアセンブリです。[1]

さらに、Zhihu氏は、「Anacondaには多くのライブラリが構築されており、パッケージ化時に不要なモジュールが多くパッケージ化されているためです。純粋なPythonでパッケージ化する必要があります」と述べています。

したがって、パッケージングに必要なツールキットのみがインストールされる新しい環境をシミュレートできます。

最適なのは仮想環境です!

2.仮想環境

Pythonで仮想環境を作成する方法はたくさんありますが、私はAnacondaの忠実なユーザーです。あなたが私のようであれば、それは簡単です。(VirtualenvとPipenvを使用して仮想環境をセットアップし、検索をうまく利用することもできます。方法は似ています。)

最初にいくつかのコマンドを覚えておいてください、それは非常に簡単です

conda create-n仮想環境名python == 3.6 
仮想環境の作成condaアクティブ化仮想環境名#仮想環境の

アクティブ化conda deactivate#仮想環境の終了

スタートメニューから「AnacondaPrompt」を実行し、表示されるインターフェイスで仮想環境を作成するための手順を入力します。aotuという名前のPythonバージョン3.6に基づく仮想環境を正常に作成しました。

 

 

作成プロセス中に返信する必要があります(y / n)、はい、次に仮想環境をアクティブ化します

 

 

condaによってインストールされた仮想環境は、anacondaインストールディレクトリの下のenvディレクトリの下に仮想環境ディレクトリを生成します。

もちろん、ウィンドウでコマンドconda info --envsを使用して、conda環境内のすべての仮想環境を表示することもできます。

3.必要なライブラリをインストールします

上記のaotuという名前の仮想環境を作成してアクティブ化しました。condalistと入力して、現在の仮想環境にインストールされているライブラリを表示します。

パッケージ化するPythonスクリプトを開いたところ、上の図と比較して、パンダ、docx、これら2つのライブラリを追加でインストールする必要があることがわかりました。もちろん、パッケージングに不可欠なpyinstallerライブラリも不可欠です。

ライブラリをインストールするプロセスは繰り返されません

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas 

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-docx 

pip install -i https:// pypi.tuna.tsinghua.edu.cn/simple pyinstaller

インストールの世話をする

正常にインストールされており、これらのライブラリとともにインストールされているものもあるので、無視してください。

4.Pyinstallerのパッケージ化手順

ここでは繰り返しません。別のアップルアイコンを試してみてください

Pyinstaller -F -w -i apple.ico py_word.py

生成

パンダをインポートしない場合は、29.8Mに正常に圧縮され、1,000万を超えるはずです。

実行してください、問題ありません

最後に、仮想環境とパッケージングのプロセス全体を簡単に要約します(3つのステップのみ)。


#Create virtual environment conda create -n aotu python = 3.6 
#Activate 

virtual environment conda activate aotu 

#Pyinstaller package 
Pyinstaller -F -w -i apple.ico py_word.py

5.いくつかの小さな穴を要約します

1.それはまだ少し形而上学的であると言えば、私は両方のコンピューターで上記とまったく同じプロセスを実行しました。そのうちの1つは、ライブラリにxlrdがないことを示しています。これは、インストール後に正常にパッケージ化されており、同じサイズです。友達は記事の最後でファイルを入手して、それを試すこともできます。

2.ライブラリをインストールするときは、docxなどの一部のライブラリ名に注意してください。pipinstalldocxは使用しないでください。ただし、

pip install python-docx

バージョンが異なるために利用できないライブラリもあります。壁にぶつかるだけです。

3.パッケージ化時に一部のライブラリがインストールされないようにするために、最初に仮想環境でPythonスクリプトを実行できます。正しく動作する場合は梱包してください。これはより安全です。

4.最後に、仮想環境を削除する場合は、次のコマンドを実行します

conda remove -n aotu --all 

5. exeとしてパッケージ化されている場合は、python3.6 + 32ビットバージョンを選択してみてください。win64ビットシステムは32ビットプログラムと下位互換性があるためですが、32ビットシステムを考慮しない場合は問題ありません。 。python64ビットバージョンを直接パッケージ化できますが、win64システムでのみ実行できます。[2]

7.ダウンロードリンク

Pythonパッケージをテストする必要があり、適切なファイルが手元にない場合は、記事内のすべてのファイルへのリンクを次に示します。https://pan.baidu.com/s/1GsASKTrIqBaqO5UeVnC2wA抽出コード:kxpy

 

最近、多くの友人がプライベートメッセージを通じてPythonの学習問題について相談しました。コミュニケーションを促進するには、青をクリックしてディスカッションに参加し、自分でリソースベースに回答してください

 

おすすめ

転載: blog.csdn.net/weixin_43881394/article/details/112604863