2012-03-02 12 views
13

アプリケーションをポータブルにする必要があります。これはインストーラがないことを意味します。私はpy2exeを見て、私はWindowsでそれを実行する場合は、私はインストールを実行する必要があることは怖いです。移植可能なPythonデスクトップアプリケーションを作成するにはどうしたらいいですか?

だから私の質問は、私は(すべての依存関係とLIBSがパッケージされている)任意のインストールなしでポータブルPythonのデスクトップアプリケーションを作ることができますされ、USB/CDからドラッグすると、それを実行するのだろうか?

(それはC++ランタイムライブラリをインストールするユーザーのための頭痛の種ですので、これは非常に重要です...)

感謝。

+0

をしたいですか...なぜそれが含まれていませんあなたのプログラムのインストーラで?インストールのためにInno Setupを使ってpy2exeでPythonソフトウェアをパッケージ化しました。私は、インストーラでVisual C++ランタイムを '/ qb'フラグで再配布可能にして、ユーザが何もする必要がないようにします。 –

+0

@ Series8217ありがとうございます。私はそれをすることができると思うが、主な点はインストーラなしである。もしそれがポータブル、いいです! – CppLearner

答えて

9

あなたはpy2exeで、このメソッドを使用することができます:http://www.py2exe.org/index.cgi/SingleFileExecutable

は基本的に、あなたは、単一の実行に必要なファイルとフォルダのすべてをパッケージ化するNSISを使用しています。実行すると、必要なファイルが一時ディレクトリに展開され、実行可能ファイルが実行され、終了するとテンポラリファイルが自動的に削除されます。

同じ結果を達成するためにNSISの代わりにInno Setupを使用していますpy2exeに付属している例もあります。​​にインストールされています。

+0

ありがとうございます。私はそれを読んで、私が間違っている場合は修正してください:私はインストーラをコンパイルした後、私は別のコンピュータにフォルダ全体をコピーすることができます。実行可能ファイルを実行すると、tmpフォルダにdllのような適切なファイルが生成されます。このファイルは、ユーザーがアプリケーションを閉じると削除されます。私のアプリケーションはXMLデータベースを持っているので永続性が必要なので、レコードを破棄したくありません。 tmpで何が作成されているかはどうやって分かりますか?ありがとう。 – CppLearner

+0

@CppLearner正しい。 "インストーラ"をコンパイルした後、他のコンピュータに移動する必要があるのは "インストーラ"だけです。実行可能ファイルを実行すると、その内容(アプリケーションexeと必要なDLLファイルなど)が展開され、アプリケーションが実行され、アプリケーションが終了すると一時フォルダが削除されます。 NSISスクリプトの例を編集して、動作を制御できます。 –

+1

@CppLearner永続的なデータが必要な場合は、その場所、おそらく '%homepath%\ AppData \ MyXMLDB'またはそれに類似する場所に保存します。アプリケーションは、どこから実行しても、常にそのアプリケーションを見つけることができます。 –

3

またPortable Pythonをフォークし、必要なアプリケーションとライブラリを含めるように変更することができます。それをインストールすることなく、任意のドライブ/ネットワークの場所から実行され、あなたが選ぶことができますが、あなたはそれがC++ランタイムライブラリをインストールするユーザーのための頭痛の種だと言う2.xxのか3.xxのベースとPythonのコア

関連する問題