6

私はPythonに非常に慣れていないことを告白しますが、私はまだ何をしているのかよくわかりません。最近、Python2.6.2とwxPython2.8を使用して非常に小さなWindowsアプリケーションを作成しました。そしてそれは素晴らしい働きをします。私はそれが正常に機能することに非常に満足しています。通常は、次のように、Pythonインタープリターを介して直接呼び出すことを意味します。

> python myapp.py

ただし、さらに一歩進んで、実際にこれをスタンドアロンの実行可能ファイルにコンパイルしたいと思いました。そこで、py2exeを利用するwxPythonwikiのこれらの指示に従いました。最初は、MSVCR90.dllが見つからないというエラーがコマンドラインに表示されました。次に、MSVCR90.dllをPython\DLLsフォルダーにコピーしました。それはそれがそれを修正したように最初は見えました、なぜならそれはそれがする必要があることをうまくやったからです。プログラムが依存しているDLLファイルがいくつかあり、それらを配布する必要がある場合とない場合があるという簡単な警告で終了しました。

そこで、py2exeが作成したdistフォルダーに移動し、実行可能ファイルを実行してみました。しかし、それを開こうとすると、次のようなエラーダイアログが表示されるだけです。

This application failed to start because MSVCR90.dll was not found.
Re-installing the application may fix this problem.

そこで、先に進み、MSVCR90.dllをこのdistフォルダーに再度コピーしました。しかし、それはうまくいきませんでした。次に、それをWINDOWS\system32ディレクトリにコピーしました。それもしませんでした。これを機能させるには何をする必要がありますか?

4

2 に答える 2

8

msvcr*.dllだけをコピーすることはできません。サイドバイサイドアセンブリのルールを使用してセットアップする必要があります。これを行うには、Samが指摘するように再配布可能パッケージをインストールするか、ルールに従っている限り、実行可能ファイルと一緒に配置することができます。

詳細については、「Visual C ++ライブラリDLLをプライベートアセンブリとして展開する」のセクションを参照してください。詳細については、 XCopyを使用して展開する方法ですが、基本的にアプリケーションは次のようになります。

c:\My App\MyApp.exe
c:\My App\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest
c:\My App\Microsoft.VC90.CRT\msvcr90.dll

これの利点の1つは、管理者以外のユーザーがアプリを使用できることです(再配布可能なインストーラーを介してランタイムをインストールするには、管理者である必要があると思います)。また、インストーラーは必要ありません。ファイルをPCにコピーするだけで、すべて機能します。

于 2009-07-17T21:14:48.170 に答える
2

Microsoft C ++再頒布可能パッケージをインストールすると、必要なDLLが正しくインストールされると思います。

于 2009-07-17T21:09:43.673 に答える