我使用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
所以我尝试了downloading the sources for bsddb3。我确保安装了Oracle的BSD DB Windows二进制文件;我从Berkeley DB 6.1.26.msi下载了它们。将include
和lib
目录从数据库安装移动到bsddb3文件夹中的/ db目录,修复了无法找到库的问题。但是,对于缺少的变量,设置失败,该变量位于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或其他东西。
有人真的不想花几个晚上在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。并且分为32位和64位版本的Windows