pip install leveldb 编译错误解决

centos7,python3.3

pip-python3 install leveldb

错误:

/usr/include/python3.3m/dynamic_annotations.h:472:3: error: template with C linkage
error: command 'gcc' failed with exit status 1

google 之,只有一个网页比较贴近这个问题:https://github.com/Wolframe/Wolframe/issues/100

大致意思是,Python.h 不应该被包含在 extern "C" 中,它本身可直接被C或C++源文件包含。

解决:

修改文件 /tmp/pip-build-root/leveldb/leveldb_ext.h,将 #include 移到 extern "C" 外面。


centos 7, python3.4, 发现没有每次编译失败就会把 /tmp/pip-build-xxxxxx 目录删掉。

解决办法:

手动到 https://pypi.python.org/pypi/leveldb 下载页面上的源代码:

https://pypi.python.org/packages/source/l/leveldb/leveldb-0.193.tar.gz

解压开,同上,修改 leveldb_ext.h,然后切换到代码目录下,运行 setup.py,如下

cd leveldb-0.193

python3.4 setup.py install

如果遇到提示 找不到 Python.h 的错误,如下安装开发包:

yum install python34-devel.x86_64


重新执行 pip-python3 install leveldb 编译,问题解决,安装成功。

查看项目官方地址 https://code.google.com/p/py-leveldb/,没有关于这个问题的 issue,而且项目已经被 google code 锁定。

在 https://code.google.com/archive/p/py-leveldb/source/default/commits 查看提交,最后一次提交是 2013年,而且2012年已经添加了对 python 3.3 的支持。这个问题已经存在了很久,而google没有关于这个问题的结果,有点奇怪啊。
原文链接: https://www.cnblogs.com/elodio/p/4873923.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/223022

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 上午11:56
下一篇 2023年2月13日 上午11:56

相关推荐