Python 解決命令行刪除、退格亂碼問題


 

安裝了python 在命令行界面無法進行刪除、退格

1 安裝readline模塊

兩種方式:yum install -y readline-devel  readline 或者 

下載文件https://pypi.python.org/pypi/readline

tar -xvf readline-6.2.4.1.tar.gz
cd readline-6.2.4.1
python setup.py install

 

第二種方法安裝時候報錯:

/usr/bin/ld: cannot find -lncurses

有三種可能性

1 系統沒有安裝相對應的lib
2 相對應的lib版本不對
3 lib(.so檔)的symbolic link 不正確,沒有連結到正確的函式庫文件(.so)

 

locate發現本地有libncurses的庫包

修改為

 

重新安裝后成功。

如果先安裝了python需要重新編譯一次 才生效

進入python安裝目錄 依次執行

./configure    

make && make install 

============================================================================

附:鏈接庫相關

Linux 系統上有兩類根本不同的 Linux 可執行程序。

第一類是靜態鏈接的可執行程序。靜態可執行程序包含執行所需的所有函數 — 換句話說,它們是“完整的”。因為這一原因,靜態可執行程序不依賴任何外部庫就可以運行。

第二類是動態鏈接的可執行程序

可以用 ldd 命令來確定某一特定可執行程序是否為靜態鏈接的

如果動態可執行程序不包含運行所需的所有函數,動態裝入器(dynamic loader)負責裝入動態鏈接的可執行程序運行所需的共享庫

動態裝入器找到共享庫要依靠兩個文件 — /etc/ld.so.conf 和 /etc/ld.so.cache

①配置/etc/ld.so.conf

②ldconfig 將/etc/ld.so.conf更新到/etc/ld.so.cache

③動態裝入器通過/etc/ld.so.cache加載庫目錄

 

共享庫查看

# ldconfig -p | less

 

某些情況下,如果要指示動態裝入器首先檢查某個目錄,請將 LD_LIBRARY_PATH 變量設置成您希望搜索的目錄。多個路徑之間用冒號分隔;例如:
# export LD_LIBRARY_PATH="/usr/lib/old:/opt/lib"
導出 LD_LIBRARY_PATH 后,如有可能,所有從當前 shell 啟動的可執行程序都將使用 /usr/lib/old 或 /opt/lib 中的庫,如果仍不能滿足一些共享庫相關性要求,則轉回到 /etc/ld.so.conf 中指定的庫。

 


免責聲明!

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



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