私はしばらくの間cx_Freezeを使用していますが、本当にやりたかったことが1つあります。それは、すべてのファイルを1つの実行可能ファイルに入れて配布できるようにすることです。 30個のファイルでいっぱいのフォルダをすべて同じディレクトリに送信するのは実際にはユーザーフレンドリーではありません。どうすればこれを達成できますか?ありがとう。
これはbbfreeze
が行うことではありませんか?
ここのチュートリアル: http://www.blog.pythonlibrary.org/2010/08/19/a-bbfreeze-tutorial-build-a-binary-series/
Python zipimport http://docs.python.org/library/zipimport.html で自分でロールするのは実際にはそれほど難しくありません
Pythonのみ。 http://upx.sourceforge.net/ ではなく、より一般的なソリューションであるUPXのようなものを使用することをお勧めします。
Cx_freezeではサポートされていません。メーリングリストでそれについての議論がありました。私が思い出したように、著者は他の人(PyInstaller、Py2Exe)がそれを達成するためにいくつかの汚いハックを使用していると述べました。一部のアンチウイルスプログラムは、その動作をウイルスと見なすこともできます。
しばらくPyInstallerを使用していましたが、Python 2.7のサポートのためにcx_freezeに戻りました。 InnoSetup を使用してすべてをパックするので、配布が簡単です。かどうかによって異なります。 Windowsを使用しているかどうか。
'build'の代わりに 'bdist_msi'を使用できます。これにより、単一のセットアップアプリケーションを含むディレクトリにdistフォルダが作成されます。
ドキュメント によると
cx_Freezeは、アプリケーションのすべてのライブラリが1つの実行可能ファイルに埋め込まれている単一ファイルexeの構築をサポートしていません。
ドキュメントには、単一のファイルを取得するためのいくつかのオプションが記載されています。
Windowsでの追加のオプションは、@ QuaziRabbiで説明されているように、bdist_msi
コマンドを使用して、アプリケーション用の単一のMicrosoftインストーラーファイル(.msi
)を作成することです。このコマンドには、インストーラーをカスタマイズするためのcx_Freeze
固有のオプションがいくつか記載されています ここ 。このコマンドは、distutils
パッケージの bdist_msi
コマンドをオーバーロードします。このコマンド自体が、インストーラーをカスタマイズするためのいくつかのオプションをもたらします。利用可能なオプションは文書化されていません。distutils
パッケージのソースコードを確認する必要があります。興味深い例は cx-freezeを使用してデスクトップにショートカットを追加するmsiを作成する および cx_freeze bdist_msi:レジストリエントリを作成しますか?
別のオプションは、別のツールを使用して、cx_Freeze
ビルドステップの後に、フリーズされたアプリケーション用のよりカスタマイズ可能な単一ファイルインストーラーを作成することです。スクリプトベースのツール NSIS(Nullsoft Scriptable Install System) を使用すると、非常にカスタマイズ可能なインストーラーを作成できます。スクリプトを使用すると、この手順を完全に自動化できます。 @Feniskoの回答は別のツールに言及しており、他にもたくさんあります。