Installing bsddb3 6.1.1 in Windows: FileNotFoundError: 'db/include\\db.h'
Installing bsddb3 6.1.1 in Windows: FileNotFoundError: 'db/include\\db.h'
我 运行宁 Windows 7 x64, Python 3.4。当我 运行 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
所以我尝试了 downloading the sources for bsddb3. I made sure I had the BSD DB Windows binaries from Oracle installed; I downloaded them from Berkeley DB 6.1.26.msi。将 include
和 lib
目录从数据库安装移动到 bsddb3 文件夹中的 /db 目录,解决了无法找到库的问题。但是随后安装程序因 posix 部分中缺少的变量而失败,但未在 Windows 部分中正确声明。
修复该问题,并进行一些其他调整,[=15=] 实际上 运行 构建,但在收到一系列关于不安全转换的警告后,它因错误而失败:
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 或其他东西。
人们真的不想花几个晚上在 Windows 上编译它,所以最好的选择是使用来自 Unofficial Windows Binaries for Python Extension Packages.
的预构建二进制文件
下载适用于您的 Python 版本(名称的 cpXX 部分)和体系结构(win_amd64 或 win32)的软件包,例如 bsddb3-6.1.1-cp34-none-win_amd64.whl,并使用 pip 安装:
pip install bsddb3-6.1.1-cp34-none-win_amd64.whl
基于 cyberj0g 的回答。
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.And分为32位和64位版本windows
- bsddb3‑6.2.5‑cp36‑cp36m‑win32.whl
- bsddb3‑6.2.5‑cp36‑cp36m‑win_amd64.whl
偶然发现这个问题的人:
在 Windows 中几乎不可能让它工作。使用 WSL,你必须通过 apt 或 apt-get 安装 bsddb3:
apt-get install -y python3-bsddb3
pip 和 pip3 之外。
我 运行宁 Windows 7 x64, Python 3.4。当我 运行 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
所以我尝试了 downloading the sources for bsddb3. I made sure I had the BSD DB Windows binaries from Oracle installed; I downloaded them from Berkeley DB 6.1.26.msi。将 include
和 lib
目录从数据库安装移动到 bsddb3 文件夹中的 /db 目录,解决了无法找到库的问题。但是随后安装程序因 posix 部分中缺少的变量而失败,但未在 Windows 部分中正确声明。
修复该问题,并进行一些其他调整,[=15=] 实际上 运行 构建,但在收到一系列关于不安全转换的警告后,它因错误而失败:
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 或其他东西。
人们真的不想花几个晚上在 Windows 上编译它,所以最好的选择是使用来自 Unofficial Windows Binaries for Python Extension Packages.
的预构建二进制文件下载适用于您的 Python 版本(名称的 cpXX 部分)和体系结构(win_amd64 或 win32)的软件包,例如 bsddb3-6.1.1-cp34-none-win_amd64.whl,并使用 pip 安装:
pip install bsddb3-6.1.1-cp34-none-win_amd64.whl
基于 cyberj0g 的回答。 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.And分为32位和64位版本windows
- bsddb3‑6.2.5‑cp36‑cp36m‑win32.whl
- bsddb3‑6.2.5‑cp36‑cp36m‑win_amd64.whl
偶然发现这个问题的人:
在 Windows 中几乎不可能让它工作。使用 WSL,你必须通过 apt 或 apt-get 安装 bsddb3:
apt-get install -y python3-bsddb3
pip 和 pip3 之外。