4 回答

TA貢獻1805條經(jīng)驗 獲得超9個贊
libexpat.so.1
指向錯誤的位置。固定它
export LD_LIBRARY_PATH=/lib64/:${LD_LIBRARY_PATH}
ldd /usr/lib64/python3.6/lib-dynload/pyexpat.cpython-36m-x86_64-linux-gnu.so linux-vdso.so.1 => (0x00007fff073f1000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f9ba53ce000) libpython3.6m.so.1.0 => /lib64/libpython3.6m.so.1.0 (0x00007f9ba4ea9000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9ba4c8d000) libc.so.6 => /lib64/libc.so.6 (0x00007f9ba48bf000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f9ba46bb000) libutil.so.1 => /lib64/libutil.so.1 (0x00007f9ba44b8000) libm.so.6 => /lib64/libm.so.6 (0x00007f9ba41b6000) /lib64/ld-linux-x86-64.so.2 (0x00007f9ba5807000)

TA貢獻1780條經(jīng)驗 獲得超5個贊
我有完全相同的錯誤。
系統(tǒng)信息
裝有 CentOS 7.9 的虛擬機
Python 3.6
解決方案
我們安裝了另一個軟件,它帶有自己的 libexpat 版本。我們還修改了環(huán)境變量 LD_LIBRARY_PATH 以包含該軟件的 lib 目錄。這導致 pip加載了錯誤的庫。
取消設置 LD_LIBRARY_PATH/從 LD_LIBRARY_PATH 中刪除軟件后,一切都很好。

TA貢獻2051條經(jīng)驗 獲得超10個贊
我使用的是 Python 3.6,我嘗試使用 PIP 安裝模塊。我收到以下錯誤。
導入錯誤:/opt/rh/rh-python36/root/usr/lib64/python3.6/lib-dynload/pyexpat.cpython-36m-x86_64-linux-gnu.so:未定義的符號:XML_SetHashSalt
在 ldd 后面加上查找映射的路徑。
ldd /opt/rh/rh-python36/root/usr/lib64/python3.6/lib-dynload/pyexpat.cpython-36m-x86_64-linux-gnu.so
檢查映射 - libexpat.so.1。在我的例子中,它指的是不正確的 oracle 路徑——/u01/oracle/product/12.1.0.2/lib/libexpat.so.1
所以我在上面的目錄中重命名了libexpat.so.1。
重命名后,再次給 ldd ,它應該指向 /lib64/libexpat.so.1
更正映射后,我就可以進行 pip 安裝了。
謝謝大家的幫助。

TA貢獻1842條經(jīng)驗 獲得超13個贊
你是如何安裝 Python 3 的?在我的 Oracle Linux 7 安裝中,我從 yum.oracle.com 上的 ol7_latest 安裝了 python3:
$ yum info python3
Installed Packages
Name : python3
Arch : x86_64
Version : 3.6.8
Release : 13.0.1.el7
Size : 39 k
Repo : installed
From repo : ol7_latest
在沒有安裝 python36-pip 的情況下,pip3 可以按預期工作,例如:
$ pip3 install --user cx_Oracle
Collecting cx_Oracle
Using cached https://files.pythonhosted.org/packages/16/1d/36ecde56e0522f1a1cea7b4d4333f88b1062e0c5287fc67f522ceacc053c/cx_Oracle-8.0.0-cp36-cp36m-manylinux1_x86_64.whl
Installing collected packages: cx-Oracle
Successfully installed cx-Oracle-8.0.0
添加回答
舉報