4

そのため、バイナリ パッチを作成し、Python 内から適用できるようにする必要がある状況があります。素晴らしいアルゴリズムのように見え、python 拡張モジュールを持つbsdiffを見つけましたが、その拡張モジュールには Python 2.5 以降の Windows インストーラーがありません。

よし、C を真剣に書いたこともなかったし、Python 拡張モジュールを試したこともなかったので、自分でコンパイルすることにしました。MinGW32 での DLL ロード エラーに対して数時間頭を悩ませた後、プロジェクトのソースで提供されている setup.py を使用してコンパイルおよびビルドすることができました。ただし、結果の bsdiff モジュールをインポートすると、次のようになります。

ImportError: DLL load failed: %1 is not a valid Win32 application.

私は64ビットのpythonを実行しています。

何かアドバイス?

4

1 に答える 1

2

Python と pywin32 のバージョンの不一致です。easy_install を使用して仮想環境に pywin32 をインストールした後、同じエラー メッセージが表示されました。 (py351env) C:\Users\ernesto.luzon\Downloads>easy_install pywin32-220.win-amd64-py3.5.exe

win32gui をインポートしようとすると、まったく同じエラーが発生しました。 DLL Load Failed: %1 is not a valid win32 application

エラーメッセージをグーグルで検索すると、cgohlke がここから pywin32 パッケージをダウンロードすることを提案したこの投稿にたどり着きました: http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32

64 ビット バージョンをダウンロードし、pip 経由でインストールしました。 pip install pywin32-220-cp35-none-win_amd64.whl

すぐに、Python のバージョンがインストールしようとしていたパッケージと一致しないというエラー メッセージが表示されました。そこで、コマンド ラインに「python」と入力してインタープリターを起動しました。実際、64 ビット マシンにインストールされた python は 32 ビット python でした。Pythonをアンインストールして64ビットのものを正しくインストールした後、easy_installを使用してsourceforgeプロジェクトからpywin32をインストールするか、pipを使用してgohlkeからホイールファイルをインストールするかに関係なく、このエラーは消えました。

于 2016-02-09T12:01:24.463 に答える