为什么我无法使用 pip 安装 lmdb?

Why am I not able to install lmdb using pip?

我正在关注此处找到的教程:https://realpython.com/storing-images-in-python/

教程中的前几个步骤运行良好;然而,当我走到这一步时

$ pip install lmdb

我遇到了 100 多个错误,安装程序放弃了。我想知道如何解决这个问题。

我在 Pycharm 终端中输入的上述步骤如下所示:

(venv) C:\Users\User\PycharmProjects\OpenCVExamples>pip install lmdb

输入如上所示的 pip 命令后,我在屏幕上看到以下内容:

Collecting lmdb
Using cached https://files.pythonhosted.org/packages/86/5
/6ad690daeaa00b328606bf2fa435244a11cc2dd9aedac6ef4d2ef2a21f6e/lmdb
0.96.tar.gz
Installing collected packages: lmdb
Running setup.py install for lmdb ... error

然后我得到一个转储,显示已采取的以下步骤:

py-lmdb: Using bundled liblmdb; override with LMDB_FORCE_SYSTEM=1.
py-lmdb: Using CPython extension; override with LMDB_FORCE_CFFI=1.
running install
running build
running build_py
creating build
creating build\lib.win32-3.7
creating build\lib.win32-3.7\lmdb
copying lmdb\cffi.py -> build\lib.win32-3.7\lmdb
copying lmdb\tool.py -> build\lib.win32-3.7\lmdb
copying lmdb\_config.py -> build\lib.win32-3.7\lmdb
copying lmdb\__init__.py -> build\lib.win32-3.7\lmdb
copying lmdb\__main__.py -> build\lib.win32-3.7\lmdb
running build_ext
building 'cpython' extension
creating build\temp.win32-3.7
creating build\temp.win32-3.7\Release
creating build\temp.win32-3.7\Release\lmdb
creating build\temp.win32-3.7\Release\lib

接下来,我收到一些警告,然后是 100 多个错误的列表。警告和前几个错误如下所示:

cl : Command line warning D9025 : overriding '/DNDEBUG' with '/UNDEBUG'
cl : Command line warning D9025 : overriding '/W3' with '/w'
error C2146: syntax error: missing ')' before identifier 'uintptr_t'
error C2059: syntax error: ')'
error C2085: '_StackCookie': not in formal parameter list

最后,我得到一个红色字体结尾的错误。最后的错误是:

Command "C:\Users\User\PycharmProjects\OpenCVExamples\venv\Script
\python.exe -u -c "import setuptools, tokenize;__file__='C:\Users\Use
\AppData\Local\Temp\pip-install-227nwnf7\lmdd
\setup.py';f=getattr(tokenize, 'open',
open)(__file__);code=f.read().replace('\r\n',
'\n');f.close();exec(compile(code, __file__, 'exec'))" install --record
C:\Users\User\AppData\Local\Te
mp\pip-record-a9unp95q\install-record.txt --single-version-externally
managed --compile --install-headers C:\Users\User\PycharmProject
\OpenCVExamples\venv\include\site\python3.7\lmdb" fai
led with error code 1 in C:\Users\User\AppData\Local\Temp\pip-install
227nwnf7\lmdb\

由于2.5年后还没有人输入正式答案,所以我决定复制上面furas评论中给出的答案:

C/C++ 代码似乎有错误。所以你可以写信给作者,或者你可以尝试使用 Anaconda,它应该有预编译模块 LMDB,它不使用 C/C++ 编译器。您还可以检查 Python 扩展包

的非官方 Windows 二进制文件