19

実行してソースからパッケージをビルドしようとしていますpython setup.py py2exe

これはsetup.pyのコードのセクションです。関連があると思います:

if sys.platform == "win32": # For py2exe.
    import matplotlib
    sys.path.append("C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\redist\\x86\\Microsoft.VC90.CRT")
    base_path = ""
    data_files = [("Microsoft.VC90.CRT", glob.glob(r"C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\*.*")),

エラーが表示されます:

*** finding dlls needed ***
error: MSVCP90.dll: No such file or directory

しかし、「Microsoft Visual C++ 2008 Redistributable Package」をインストールしました。64 ビットの Windows 8 で 32 ビットの Python を実行しています。32 ビットのバイナリをビルドしようとしています。

また、「C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\」のようなフォルダーもありません。これは私のコンピューターに含まれるものです:

ここに画像の説明を入力

編集:

msvcp90.dllC:\ ドライブを検索すると、次のような奇妙なパスにインストールされていることがわかりました。

ここに画像の説明を入力

4

4 に答える 4

12

依存関係を完全に無視することをお勧めします。のオプションとして指定されたMSVCP90.dllのリストに追加します。ユーザーは、Microsoft Visual C++ 2008 再頒布可能パッケージをインストールする必要があります。例:dll_excludespy2exe

setup(
    options = {
            "py2exe":{
            ...
            "dll_excludes": ["MSVCP90.dll", "HID.DLL", "w9xpopen.exe"],
            ...
        }
    },
    console = [{'script': 'program.py'}]
)
于 2012-08-28T06:16:00.713 に答える
3

(新しい回答、他の回答は別の解決策を説明しているため)

WinSxS ディレクトリからファイルを取得し、C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRTディレクトリ (通常は Visual Studio によって作成されますが、これはありません) にコピーできます。それらをコピーして、次の構造を取得します。

  +-Microsoft.VC90.CRT
  | |
  | +-Microsoft.VC90.CRT.manifest
  | +-msvcm90.dll
  | +-msvcp90.dll
  | +-msvcr90.dll

次に、セットアッププログラムを実行できるはずです(msvcp90.dll他の回答のように、まだ除外されています)。ファイルが正常に検出Microsoft.VC90.CRTされ、データファイルとしてバンドルにコピーされます。

詳細については、py2exe チュートリアルを参照してください。

于 2012-08-28T08:12:22.270 に答える
0

ディレクトリ内のスペースと関係があると思います。を使ってみてください.rstrip()。たとえば、次のように入力します。

directory='C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT'
directory=directory.rstrip()

その後、実際のパスを使用した場合と同じように変数ディレクトリを使用できます。

これにより、以前は解読できなかったディレクトリを python が認識できるようになります。

于 2012-09-01T23:12:04.770 に答える
0

あなたが直面している問題や、Cython のようなパッケージをpip install cython.

2 週間の苦痛の後で私にとって最もうまくいった解決策は、ここで提供されている Windows 用の非公式の MinGW GCC バイナリをダウンロードして実行することでした。試してみて、それが役立つかどうかを確認してみてください。

その場合、MinGW が既にある場合はアンインストールすることをお勧めします。それが厳密に必要かどうかはわかりませんが、念のためいつもそうしていました。問題なくCygwinと並べてインストールしました。

于 2012-09-02T00:21:25.167 に答える