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 <Python.h> 移到 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沒有關於這個問題的結果,有點奇怪啊。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM