[Python]CentOS - ImportError: No module named '_curses'


網上搜了不少答案, 基本都是說Windows環境下curses包不適用的問題.
作為碰到這個問題的linux用戶,實在感到無奈。

起因是在CentOS上部署uwsgi,想要使用uwsgitop來監控。運行uwsgitop 127.0.0.1:3031報錯

錯誤信息:ImportError: No module named '_curses'

 

問題在於Python在make install的時候,沒有成功將linux下_curses的so文件復制到指定目錄下。系統缺失_curses的so包,因此無法導入_curses.

下圖是make install 的log。顯示在install的時候, 有將so文件復制到目標路徑下。

但實際上並沒有操作成功。來到/user/lcoal/python3/lib/python3.5/lib-dynload下查看,確實沒有找到_curses的so文件。

反復翻看make和make install的輸出信息,都沒有相關錯誤提示。

 

解決方案是stackoverflow上TonyTony的答案:error-no-module-named-curses

自己手動將python編譯后build文件夾下的so文件移動到 /usr/local/pyton3/lib/python3.3/lib-dynload下。

再次運行uwsgitop, 沒有再提示缺少curses包的問題。問題解決。

 

還有一種說法是linux下缺少對應的dev文件, 需要yum install缺失的包, 並重新編譯Python安裝文件。

因為根據上面的方案解決了問題,所以下面的方案並沒有親測,感覺應該是可行的。

原方案是Ubuntu下的, 通過安裝libncurses來解決問題

sudo apt-get install libncurses5 libncurses5-dev libncursesw5

地址見:https://github.com/bpython/bpython/issues/564。 


CentOS用戶會碰到Could not find packages的問題,因為在CentOS下這個包名稱應該是ncurses-devel。

問題見: couldnt-find-package-libncurses5-dev

yum install ncurses-devel


免責聲明!

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



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