2012-03-26 10 views
7

私はPythonに基づいたアプリケーションを持っています。 私はこのアプリケーションをさまざまなOS(主にLinuxではなく、さまざまなディストリビューション)のユーザーに配布したいと考えています。依存関係を持つ「静的にコンパイルされた」Pythonアプリケーションを配布するには

これを行う推奨方法は何ですか?私はユーザーがPythonをインストールする必要はありません。私はPython (無料のソフトウェア)で配布したいと思います。静的にコンパイルされたプログラムのようなもの。

アプリケーション全体をインストールすると、フォルダ内の一部のファイルが解凍され、Python(および使用されたモジュール)とアプリケーションがすべてこのフォルダ(サブフォルダを含む)に格納されます。

他の人がどのようにしてPythonプログラムを配布しますか?

ユーザーがPythonを単独でインストールしたり、既存のPythonをアップグレードしたりする場合、アプリケーションが中断しないようにする必要があります。このため、私はアプリケーションと共にPythonのコピーを配布する必要があります。

答えて

1

を参照するか、彼らのウェブサイトからcx_freeze

を参照してください。

cx_Freezeがで、実行ファイルにPythonスクリプトを凍結するためのスクリプトとモジュールのセットです

cx_Freezeについてpy2exeとpy2appが行うのと同じ方法です。これらの2つのツールとは異なり、cx_Freezeはクロスプラットフォームであり、Python自体が動作するプラットフォームで動作するはずです。 2.3で導入されたzip import facilityを利用しているので、Python 2.3以降(Python 3を含む)をサポートしています。

3

Windowsの場合:py2exeが私の推奨解決方法です。リソースを含むオールインワンの.exeを構築することができます。 Linuxの場合

、次のいずれか

  • は、Python(DLLまたはlibpython.so)を統合C実行可能ファイルをビルドRPMを構築し、依存関係としてPythonを設定、または
3

この方法をお勧めしますか? ユーザーがPythonをインストールする必要はありません。

典型的には、Pythonプログラムはdisutilsで「パッケージ化」と既存のPythonのインタープリターで使用するために設置されています。

は、以下を参照してください。Distributing Python ModulesInstalling Python Modules

あなたのソフトウェアの配布の内部インタプリタ全体を(確かに可能が)バンドルするのが一般的ではありません。

+0

Corey、私はソフトウェア配布の中にPythonインタプリタをバンドルしようとしていますが、どうやってそれをどうやって見つけるのが良いのでしょうか?ありがとう。 – Johnny