Visual Studio(VC ++)を使用して、pyinstallerによってパッケージ化されたexeファイルが大きすぎるという問題を解決します(1)

0.背景

私は最近Pythonが好きで、オーディオ関連の作業をやり直しているので、Pythonを使用してさまざまなオーディオファイルを生成するための小さなツールを作成したいと思います。ランニング効果は以下のとおりです。しかし、同僚のために使用したいのですが、他の人はPython環境を持っていない可能性があるため、pyinstallerを使用してexeファイルをパッケージ化して生成します。誰が知っている、exeファイルは30Mです。おびえた。検索した後、pipenv、anaconda、UPX、mingwなどのさまざまなソリューションを試し始めましたが、肉体的にも精神的にも疲れていました。突然、Liu Anzhongは、自分のコンピューターには既製の全能のMicrosoft Big Macが1つしかないのだと思い、巨人の肩の上に立つのが上手くなり、すぐに花が咲きそうだと感じました。過去2日間の多くの計画のエルゴード的な試みを組み合わせると、私は一般的な考えを持っています。

基本的な原則は次のとおりです。Pythonスクリプトは、Pythonインストールディレクトリのpython.exe xxx.pyコマンドを呼び出すことにより、cmdコマンドラインで実行されます。C ++には、外部のexe実行可能プログラムを呼び出すメカニズムがあります。この場合、C ++プログラムを作成し、python.exeを呼び出して、C ++プログラムでスクリプトを実行できます。理論は完全に適合します。

1.準備

1.vs2017やvs2010などのIED環境をコンピューターにインストールします

2. pyinstallerによってパッケージ化されていないPythonスクリプト(またはpyinstaller -Fコマンドによってパッケージ化された単一のexeファイル)を準備します。

行動を開始します:

1. vs2017でvs2017_win32_prj_slnという名前のソリューションを作成し、このソリューションの下に新しいwin32コンソールアプリケーションを作成します(図1)。

1.1作成後の図2:

1.2図2のファイルcall_python_test.cppを開くと、空のメイン関数があります

図1

図II

2.実用的な解決策:

2.0main関数に次のコードを追加します。

2.1ここで、D:\\ Python37 \\ python.exeはPythonのインストールパスです

2.2ここで、E:\\ study_python \\ pyinstaller_test \\ general_2ch_sinwav_file.v1.300.pyは、Pythonスクリプトの場所です。

2.3バックスラッシュ2.12.2のinはエスケープを意味します。それを無視しないでください。

2.4コンパイルアクションの実行を開始します。図3

2.5実行後、図4に示すように、プロジェクトの下にファイルが生成されます。サイズを見て、びっくりしましたか?9Kああ9Kああ。

2.6pyinstallerによって生成された30Mを比較します。驚いた、驚いた、驚いた、驚いた、驚いた?

2.7新しく作成されたファイルcall_python_test.exeの効果を図5に示します。

2.8私のpoのコードを注意深く見て、実践に長けている場合は、pyinstallerによって生成された.exeファイルを直接呼び出すことも可能であることがわかります。誰もがそれを試してみたいと思うかもしれません。

2.9プログラマーのコーディングプロセスはこれまで順調に進んだことはなく、常に問題解決への道を歩んでいます。なんでそんなこと言うの?図5を注意深く見てください。少し残念でしたか?ガジェットで黒いcmdウィンドウが起動しました。それを解決する方法は?

私の2番目の改善された計画に注意を払ってください https://blog.csdn.net/qingfengjuechen/article/details/103021189 

int main()
{  
	system("D:\\Python37\\python.exe E:\\study_python\\pyinstaller_test\\general_2ch_sinwav_file.v1.300.py"); //v1, fast
	//system("D:\\Python37\\pythonw.exe E:\\study_python\\pyinstaller_test\\general_2ch_sinwav_file.v1.300.py"); //v1.1, fast
	//system("D:\\Python37\\general_2ch_sinwav_file.v1.300.exe"); //v2
	return 0;
}

図3 

 

図4

図5

 

 

 

 

おすすめ

転載: blog.csdn.net/qingfengjuechen/article/details/102992446