問題の展開Pythonプログラム(py2exeとパッケージ化)
-
20-08-2019 - |
質問
私は問題を抱えている:私は私のプログラムのためにpy2exeを使用し、それは私のコンピュータ上で働いていました。私はInno Setupのでそれをパッケージ化(まだ私のコンピュータ上で働いていた)が、私は別のコンピュータにそれを送ったときにアプリケーションを実行しようとしたとき、私は次のエラーを得た:「のCreateProcessに失敗しました。コード14001」アプリは実行されません。 (注:私はwxPythonをし、私のプログラムではマルチプロセッシングモジュールを使用しています。) 私はそれのために少しググれ、ユーザは、いくつかのMSの再配布可能なものをインストールする必要があることを見つけましたが、私は私のユーザーの生活を複雑にする必要はありません。解決策はありますか?
バージョン:
Pythonの2.6.2c1、 py2exe 0.6.9、 WindowsのXPのPro
解決
あなたは、インストールディレクトリ内([yourappname] .exe.manifestに改名)msvcr90.dll、Microsoft.VC90.CRT.manifest、およびpython.exe.manifestを含める必要があります。あなたは「ちょうど私のために」オプションではPythonをインストールした場合、これらのファイルは、システム上のPython26ディレクトリになります。
このここで見つけることができます。インストラクション>。multiprocessing.freeze_support()を呼び出すことを忘れないでください。 A>また、あなたの主な機能で、または新しいプロセスを開始するときに問題が発生します。
他の人があなたのインストールパッケージでMSVCランタイムを含め議論してきたが、あなただけのすべてのファイルを含む単一の.zipファイルを配布したいときは、上記の溶液は動作します。それはあなたがその追加の合併症をしたくない時に別のインストールパッケージを作成する必要がなくなります。
他のヒント
あなたはInnoSetupセットアップexeファイルの一部としてそのMSの再配布可能なブツをインストールすることができる必要があります。
あなたはpy2exeを実行すると、それが完了しますと、最終メッセージをよく見ます。それはあなたにそれがプログラムによって必要とされていると言うのDLLのリストを与えるが、そのpy2exeは自動的にバンドルされていません。
リストの多くは、任意のWindows上で確実に利用できますが、インストールしていますが、手動でInno Setupのインストールにバンドルする必要があることを、いくつかのがあるでしょう。あなたはWindowsがインストールされ、例えば、古い上に展開したい場合は、一部にのみ必要とされています勝つ2000またはそれ以前ます。
あなたは「プライベートアセンブリ」などのアプリケーションで問題のランタイムDLLを出荷することができます。これは単にあなたの実行ファイルと一緒にランタイムDLLとそのマニフェストを含む特別に指定されたディレクトリのコピーを置くことを意味します。
を参照してください。このポストするに私の答えます。