2016-10-30 9 views
2

私はプログラミングが新しくなっています。私は最近、pythonとpygameを使って単純なスネークゲームを作った。もちろん、私は.pyスクリプトを実行することで簡単にゲームをプレイすることができますが、コンピュータに習熟していない友人と共有したい場合は、コードをコンパイルして.exeファイルにする方法を試しました彼らのために簡単です。Pythonを単一の.exeにコンパイルするのはなぜそう難しいのですか?

py2exeとcx_Freezeを試してみました。どちらも私にdistやbuildディレクトリに.exeといくつかの他のファイル(依存関係)を与えました。私はフォルダ全体を解凍して.zipで配布することができるので、これはうまくいきますが、は理想的ではありませんです。私は1つのファイルにすべてをまとめることができるようにしたい。

私は「pythonを1つのexeファイルにコンパイルする方法」を検索し始めました。しかし、私が以前にグーグルで試みたプログラミング問題の多くとは異なり、私はまっすぐで信頼できる答えを得ることはできません。それでも

from distutils.core import setup 
import py2exe, sys, os 

sys.argv.append('py2exe') 

setup(
     options = {'py2exe': {'bundle_files': 1, 'compressed': True}}, 
     windows = ['snek.py'], 
     zipfile = None 
     ) 

# Python 3.4.4, py2exe 0.9.2.2; modules used: pygame, random 

が、それは私の代わりに、プログラムがなしで実行することはできません、単一の.exeファイルのフォルダ全体を与える:これまでのところ、私が試した最新の信頼できる答えは私にこのsetup.pyスクリプトを提供します。

だから、私はあなたに来て、すべて知っている、偉大な、stackoverflow、2つの質問です。

もし私が何かを見逃した場合:どうすれば私は私の単一のEXEの夢を達成することを提案しますか?

なぜ、これはなぜ難しいのですか?

+0

Nuitkaを試しましたか? – mbdevpl

+0

Pythonは.exeファイルにコンパイルするために作成されていないため、多くの人がまだ.exeファイルを必要としないので、まだ複雑です。 BTW。 'py2exe'(など)は、実際の.exeファイルではなく、.exeという拡張子を持つ自己解凍型の.zipファイルを作成します(C/C++コンパイラのように)。 – furas

答えて

3

この質問はすでにここに答えている: py2exe - generate single executable file

をpyInstallerのは、依存関係のない単一の.exeファイルを作成します。 --onefileoptionを使用します。これは、実行ファイルに必要な共有ライブラリをすべて梱包し、実行前に解凍することで行います(編集:py2exeにもこの機能があります)。

+0

はい、これは私が以前に試した回答です。ユーザーMintyの答えは、実際には私の現在の「解決策」です(私は同じコードを使用しています)。 – ning

関連する問題