我使用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或其他东西。
答案 0 :(得分:6)
一个人真的不想花几个晚上在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
答案 1 :(得分:0)
基于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