伺服器上啟動pip報錯問題

2022-06-18 05:03:08 字數 1580 閱讀 5325

伺服器上想用pip3安裝個pandas跑程式。結果一直報錯:

traceback (most recent call last):

file "/usr/bin/pip3", line 8, in from pip import main

file "/usr/lib/python3.6/site-packages/pip/__init__.py", line 42, in from pip.utils import get_installed_distributions, get_prog

file "/usr/lib/python3.6/site-packages/pip/utils/__init__.py", line 27, in from pip._vendor import pkg_resources

file "/usr/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 35, in import plistlib

file "/usr/lib64/python3.6/plistlib.py", line 65, in from xml.parsers.expat import parsercreate

file "/usr/lib64/python3.6/xml/parsers/expat.py", line 4, in from pyexpat import *

importerror: /usr/lib64/python3.6/lib-dynload/pyexpat.cpython-36m-x86_64-linux-gnu.so: undefined symbol: xml_sethashsalt

參考文章:

解決方案:在命令列裡敲 ld_library_path=/lib64/:$path 。pip3可以正常啟動。

-----------------------------------------分割線------------------------------------------

在後續的使用中,發現每次xshell連上伺服器後,依舊會報上面的錯,重新輸入上述指令後,才可以正常使用。

其原因見這裡:

ld_library_path變數是臨時設定的,因此每次斷開sh連線後,設定失效,需要重新設定。

這裡選用的方法是:

開啟~/.bashrc檔案

寫入

ld_library_path=/lib64/:$path
這裡沒有使用文章中提到的export,我對export的必要性不明了。便寫入了前文中的指令。

不過不寫export好像沒有效果,我後面找時間測一測

總結一下,伺服器上報undefined symbol: xml_sethashsalt錯時,很大可能是因為ld_library_path變數不包含擴充套件包的路徑。因此需要設定該變數。又每次斷開重連伺服器時,該變數還原,因此需要反覆設定該變數。而~/.bashrc檔案中寫入的指令在每次啟動sh時都會自動執行,因此將設定環境變數的指令寫入此檔案中,後面再連伺服器跑指令碼時,就沒再報過該錯誤。

Tomcat伺服器SSL報錯問題

tomcat有幾種配置ssl的模式方法,下面簡單說一下因為一些模式,所導致出現tomcat報錯的問題。正常情況下碰到這個問題,掃一眼,第一反應是去查詢443埠是否被占用。然而,查到的結果並不是。實際上這個問題是由apr模式引起的,apr模式是需要呼叫ssl證書的公私鑰才可以。例如下圖 簡單看一下報錯...

Ubuntu 伺服器上安裝啟動SSH Server

ubuntu 下安裝 openssh server 是無比輕鬆的一件事情,需要的命令只有一條 sudo apt get install openssh server 在ubuntu終端使用命令測試 ssh localhost 如果出現以下錯誤,則很可能是因為還沒有安裝ssh server ssh c...

解決伺服器上啟動QT程式失敗的問題

問題解決記錄 問題描述 用qt寫了乙個程式 qxcbconnection could not connect to display aborted 解決方法 不安裝qt的前提下 首先保證本地打包的在伺服器上的庫沒又缺斤少兩,可以用ldd命令看依賴庫。因為可能有的庫在自己電腦上已經安裝過了,伺服器上不...