2013-04-04 8 views
6

私はsetuptoolのbdist_wininstを使ってプロジェクト用のインストールEXEをビルドします。しかし、私が実際にPython 2.7.3を搭載したWin7-64bitマシンでインストーラを実行すると、ランタイムエラーが発生することがわかりました:http://i.imgur.com/8osT3.jpg。 (64ビットインストーラーのみをpython-2.7 64ビット版、32ビット版(python2.7 32ビット版)は正常に表示されます)OKをクリックするとインストーラーは終了しますが、これはエンドユーザーにとっては貧弱です。setup.py bdist_wininstでビルドされたWindowsインストーラは、インストール時にRuntimeErrorをトリガします。これをどうやって解決するのですか?

どのようにそれを解決するためのアイデアですか?

+0

だけclairifyし、Py2.7.3 + Win6_64bitは動作しません。 Py2.7.4 + Win7_32bitは機能しますか?私はあなたが正しく実行時ライブラリに縛られていないと仮定します..どのようにあなたのものをパッケージ化しますか? – Torxed

+0

私は、exeを生成するubuntu Linux 12.10でbdist_wininstとパッケージします。 distutilsコード(command/bdist_wininst.py)はスタブインストーラ(wininst-9.0.exeとwininst-9.0-amd64.exe)に情報を追加するだけです(create_exeを参照)。/usr/lib/python2.7/distutils/にあります。コマンド)。正しいexe(python2.6 +のバグ)を使うために私は少し猿のパッチを貼ることに注意してください。 – UsAaR33

+0

好奇心を要して、あなたは実際のWindowsマシン上のすべてのものをバウンドしてみましたか?私はslithgly全体の問題は、Windowsインストーラが必要とする可能性があり、パッケージの完全ではないDLLの多くが失われているためです。 – Torxed

答えて

1

Visual C++再配布可能パッケージが見つからないか破損している可能性があります.Microsoft Visual C++ 2008 SP1/2010再配布可能パッケージ(x64)またはその他のバージョンをインストールしてみてください。

+0

私の謝罪;私は元の質問ではっきりしていませんでした。インストールEXEは、正しいEXEがすでに存在するはずのsetuptoolのbdist_wininstでビルドされています。 – UsAaR33

+0

次に、インストールexeをビルドしているとき(おそらく、x86-x64設定があるか、または設定のいくつかの正しいmsvcr {version [80/100]}/msvcp [80/100] } dll)。 –

+0

また、EXEはすでに存在しています。distutilsの一部として配布されています。 bdist_wininstコマンド(主なコメントを参照)は、データを追加するだけです – UsAaR33

1

おそらくx64専用の実行可能ファイルを作成する必要がありますか? これは、あなたが実行しなければならないコマンドです:

python setup.py build --plat-name=win-amd64 

詳しい情報はここで見つけることができます:

http://docs.python.org/2/distutils/builtdist.html#cross-compiling-on-windows

+0

私はすでにこのオプションを使用しています。これは、EXE bdist_wininstテンプレートがどのテンプレートを使用すべきかを制御するものです。拡張モジュールを持たないパッケージ(鉱山など)には他の効果はありません。 – UsAaR33