9

Python 3.4 で Windows 7 x64 を実行しています。実行すると、次のようpip install bsddb3になります。

λ pip install bsddb3
Collecting bsddb3
  Using cached bsddb3-6.1.1.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 20, in <module>
      File "C:\Users\User\AppData\Local\Temp\pip-build-soqf0_qb\bsddb3\setup.py", line 42, in <module>
        import setup3
      File "C:\Users\User\AppData\Local\Temp\pip-build-soqf0_qb\bsddb3\setup3.py", line 375, in <module>
        with open(os.path.join(incdir, 'db.h'), 'r') as f :
    FileNotFoundError: [Errno 2] No such file or directory: 'db/include\\db.h'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\User\AppData\Local\Temp\pip-build-soqf0_qb\bsddb3

そこで、 bsddb3 のソースをダウンロードしてみました。Oracle の BSD DB Windows バイナリがインストールされていることを確認しました。Berkeley DB 6.1.26.msiからダウンロードしました。includeおよびディレクトリを DB インストールから bsddb3 フォルダの /db ディレクトリに移動するとlib、ライブラリが見つからないという問題が修正されました。しかし、その後、posix セクションにあるが、Windows セクションで適切に宣言されていない欠落変数でセットアップが失敗しました。

それを修正し、他のいくつかの調整を行い、python setup.py build実際にビルドを実行しましたが、安全でない変換に関する一連の警告の後、エラーで失敗しました:

warning: I don't know what to do with 'runtime_library_dirs': ['db/lib']
error: don't know how to set runtime library search path for MSVC++

次に何をすべきかわかりません。私が最初に使用しようとしていたライブラリを書き直して、代わりに SQLAlchemy を使用するようにする以外は。

4

3 に答える 3

11

それを Windows でコンパイルするのに何晩も費やしたくないので、最適なオプションはPython 拡張パッケージ用の Unofficial Windows Binariesからビルド済みのバイナリを使用することです。

bsddb3-6.1.1-cp34-none-win_amd64.whl のように、Python バージョン (名前の cpXX 部分) とアーキテクチャ (win_amd64 または win32) のパッケージをダウンロードし、pip でインストールします。

pip install bsddb3-6.1.1-cp34-none-win_amd64.whl
于 2015-12-17T18:24:23.893 に答える
2

Cyber​​j0g の回答に基づいています。 https://www.lfd.uci.edu/~gohlke/pythonlibs/#bsddb3

pip install bsddb3-6.1.1-cp34-none-win_amd64.whl

注: cp の部分は CPython のバージョンに対応しています。

これは、cp36 が CPython 3.6 用であることを意味します。また、Windows 用に 32 ビット バージョンと 64 ビット バージョンに分けられます。

  • bsddb3‑6.2.5‑cp36‑cp36m‑win32.whl
  • bsddb3‑6.2.5‑cp36‑cp36m‑win_amd64.whl
于 2017-12-19T10:03:48.430 に答える