【发布时间】:2017-05-12 22:12:07
【问题描述】:
昨天我将 PC 上的 Python 从 3.5.1 更新到了最新版本:3.6。 我在笔记本上做了同样的事情,从 3.5.2 到 3.6。 不时更新 Python 是很自然的。
我想使用 Couchbase。
最新的 Python SDK 适用于 3.4 版本!
(couchbase-2.1.3.win-amd64-py3.4.exe)
此外,该库可能存在错误,因为“pip install couchbase”返回此错误(在 2 台不同的机器上)。
building 'couchbase._libcouchbase' extension
creating build\temp.win32-3.6
creating build\temp.win32-3.6\Release
creating build\temp.win32-3.6\Release\src
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -D_CRT_SECURE_NO_WARNINGS=1
-I..\lcb-winbuild\x86\deps\include "-Ic:\program files (x86)\python36-32\include" "-Ic:\program files (x86)\python36-32\include" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\winrt" /Tcsrc\exceptions.c /Fobuild\temp.win32-3.6\Release\src\exceptions.obj
exceptions.c
c:\users\alex\appdata\local\temp\pip-build-h_bixmeo\couchbase\src\pycbc.h(25): fatal error C1083: Cannot open include file: 'libcouchbase/couchbase.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\cl.exe' failed with exit status 2
---------------------------------------- Command ""c:\program files (x86)\python36-32\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\alex\\AppData\\Local\\Temp\\pip-build-h_bixmeo\\couchbase\\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\alex\AppData\Local\Temp\pip-tkag3cnx-record\install-record.txt
--single-version-externally-managed --compile" failed with error code 1 in C:\Users\alex\AppData\Local\Temp\pip-build-h_bixmeo\couchbase\
... GitHub 上的 Python SDK (https://github.com/couchbase/couchbase-python-client) 被标记为 [build|failing]。
这不是我第一次拥有太新的 Python 版本,但还没有更新版本的库 X。
你是如何处理这个问题的?
这个“一般”问题有解决方法吗?
我的意思是一种在具有 Python 3.5/3.6 的系统上安装 Python 3.4 库“X”的方法。
亚历山德罗
[更新]
上一个错误(缺少“libcouchbase/couchbase.h”)是由于缺少 Couchbase C SDK。
Python SDK 依赖于 C SDK。
此外,Python SDK 无法通过 pip 安装:
请注意,通过 pip 安装将无法在 Windows 上运行。
而是在 PyPi 页面和 GitHub 上没有提到任何问题,并且都建议使用:pip install git+git://github.com/couchbase/couchbase-python-client
C SDK 也不能通过 Windows 上的 pip 安装。 :-( 文档说您可以为您的环境下载二进制版本并
C SDK 没有任何首选的安装路径,并且已启动 让您确定 libcouchbase.dll 的放置位置。
1) Win x64 上 Visual Studio 2015 的最新版本 (2.7.0) 的链接已损坏。我必须使用旧版本或 Visual Studio 2012 版本。 2) 我不知道在哪里解压这个 SDK。对此根本没有任何说明。我没有在 Google 上找到任何关于在 Windows 上安装 Python DSDK 的帖子/示例)。
pip install 在 C:\users(current user)\AppData\Local\Temp(pip-khfdskhfsdk-build) 下创建一个新的临时文件夹,所以我不知道如何指示 libcouchbase.h 文件在哪里(或 C SDK 的路径)。
我尝试使用以下来源构建 SDK:
python setup.py build_ext --inplace
--library-dir d:\Downloads\libcouchbase-2.7.0_amd64_vc11\libcouchbase-2.7.0_amd64_vc11\lib
--include-dir d:\Downloads\libcouchbase-2.7.0_amd64_vc11\libcouchbase-2.7.0_amd64_vc11\include
但我有 54 个这样的错误: exceptions.obj:错误 LNK2001:未解析的外部符号 _imp__lcb_get_errtype (与 VS 2015 的 libcouchbase 2.6.4 版本相同的错误)
此时我最好的选择是尝试为 Python 3.4 使用 Windows 安装程序(应该包括 C SDK 本身),但安装程序会检查 Python 3.4 版本。
如何强制Python 3.4 的安装程序可以在我的 Python 3.6 上运行吗?
【问题讨论】:
-
大部分适用于python3.4的代码应该也适用于python3.5。自从您上次为 python3.4 安装它以来,
couchbase-python-client中可能引入了一个错误。这也可以解释您看到的“[build|failing]”。如果可能的话,您应该查看您在 python3.4 中使用的 couchbase 客户端的版本,然后尝试使用pip... (pip install couchbase==<version>) 专门安装该版本 -
MongoDB 也只有适用于 Python 3.4 的驱动程序,但
pip install pymongo(在 Python 3.6 上)工作正常。可能那个版本的 Couchabse Python SDK 真的不行。