kudu-python1.4.0 編譯安裝

爲什麼不使用kudu1.11.0? 不想折騰唄

1>從git下載源碼包 kudu1.4.0

2>解壓,進入到kudu-1.4.0/python目錄運行安裝命令

sudo python setup.py install

3>導包測試會發現如下錯誤

>>> import kudu
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/anaconda3/lib/python3.6/site-packages/kudu_python-1.4.0-py3.6-linux-x86_64.egg/kudu/__init__.py", line 18, in <module>
    from kudu.client import (Client, Table, Scanner, Session,  # noqa
ImportError: /usr/local/anaconda3/lib/python3.6/site-packages/kudu_python-1.4.0-py3.6-linux-x86_64.egg/kudu/client.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZNK4kudu6client10KuduTablet2idB5cxx11Ev

該問題應該是gcc版本問題導致,解決方法如下:
a)卸載已經安裝的kudu-python,刪除之前解壓kudu-1.4.0文件夾,再重新解壓

sudo pip uninstall kudu-python -y
rm kudu-1.4.0 -rf

b)在kudu-1.4.0/python下修改setup.py文件添加編譯參數**-D_GLIBCXX_USE_CXX11_ABI=0**

for submodule_name in ext_submodules:
    ext = Extension('kudu.{0}'.format(submodule_name),
                    ['kudu/{0}.pyx'.format(submodule_name)],
                    libraries=['kudu_client'],
                    include_dirs=INCLUDE_PATHS,
                    library_dirs=LIBRARY_DIRS,
                    extra_compile_args = ["-D_GLIBCXX_USE_CXX11_ABI=0"], #添加此行
                    runtime_library_dirs=RT_LIBRARY_DIRS)
    extensions.append(ext)

命令行CFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0 sudo python setup.py install 無效,不知道爲何?

c) 重新安裝

sudo python setup.py install

d)重新測試 (請切換到其他非python目錄)

>>> import kudu
>>> 

reference:
https://jira.apache.org/jira/browse/KUDU-2465

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章