py2exeは素晴らしいですし、Windowsシステム上で動作するPythonプログラムをパッケージ化したいときはいつでも使用します。py2exeのクロスプラットフォームの代替
私の質問は、Windows上でプログラムをパッケージ化するのに使用できる同等のツールがあるのですが、Linuxで実行できるのですか?
py2exeは素晴らしいですし、Windowsシステム上で動作するPythonプログラムをパッケージ化したいときはいつでも使用します。py2exeのクロスプラットフォームの代替
私の質問は、Windows上でプログラムをパッケージ化するのに使用できる同等のツールがあるのですが、Linuxで実行できるのですか?
[OK]を実行しました。ちょっとハッキリですが、私のユースケースではうまく動作します。
その要点は、ModuleFinderを使用して、インポートされたすべてのモジュールを見つけ出し、システムのものを除外し、コンパイルして、それらを圧縮することです。あなたが安全ということを想定することができ
zipfile = ZipFile(os.path.join(dest_dir, zip_name), 'w', ZIP_DEFLATED)
sys.path.insert(0, '.')
finder = ModuleFinder()
finder.run_script(source_name)
for name, mod in finder.modules.iteritems():
filename = mod.__file__
if filename is None:
continue
if "python" in filename.lower():
continue
subprocess.call('"%s" -OO -m py_compile "%s"' % (python_exe, filename))
zipfile.write(filename, dest_path)
また、Linux、MacOS、WindowsをサポートするPyInstallerもあります。まだ使用していませんので、Linux用のパッケージをパッケージ化できるかどうかはわかりませんが、manual以上が可能です。
EDIT: FAQ状態明示的には、LinuxからWindowsパッケージとLinuxからなしのMac OSパッケージを作成することができないということは、どちらも - そこに、他の2つのソースからのLinuxパッケージの作成については何もありませんが、そうではないかもしれません作業。
EDIT2: も一見の価値があるかもしれない私はcx_freezeを発見したビットをグーグル後。
興味深いアイデアだが、私はどちらかの仕事をすることはできなかった。しかし、提案をありがとう。 – xorsyst
私は本当にあなたがそのような何かをすることができることを本当に疑っています。
あなたができることは、自分のプログラムを実行するのに必要なすべてのものがある、Windows用、MacOS用、Linux用の3つのVMを構築することです。
次に、py2exe/py2app/pyinstallerの組み合わせを使用して、各プラットフォームのディストリビューションを生成します。 3つの異なるパッケージがありますが、それぞれがきちんとパックされ、クライアントマシンに他のものをインストールする必要はありません。
:残念ながら、このための私のコードは、この質問への関連性を持っていないので、私が作業プログラムを貼り付けることはできません、単にいくつかのスニペットの追加合併症に散らばっている
pythonは既にほとんどのLinuxシステムにインストールされています。 – ThiefMaster
はい、でも、対象のLinuxシステムにインストールすることなく、インポートされたモジュールを含め、すべての関連するソースファイルを簡単にパッケージ化したいと思います。 – xorsyst