[心得]SUSE OS上Python ImportError的解決方法

看板Linux作者 (花心只是掩飾內心的空虛)時間10年前 (2015/12/14 21:02), 10年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ [本文轉錄自 Python 看板 #1MRg9kYq ] 作者: sexyrickysky (花心只是掩飾內心的空虛) 看板: Python 標題: [教學]Linux 上Python ImportError的解決方法 時間: Mon Dec 14 19:05:13 2015 今天在SUSE上安裝Python 3.5的時候遇到了 ImportError: No module named readline的問題 花了不少時間GOOGLE,才把問題解決掉。 所以分享給遇到類似問題的鄉民,順便留下記錄,方便以後查詢XD。 先從如何在SUSE上安裝Python 3.5講起好了 1. 下載Python 3.5,並解壓縮 網址:https://www.python.org/ftp/python/ (自行尋找對應的版本e.g x86 or amd64) 2.進入解好壓縮的Python 3.5資料夾,並設置Python的安裝目錄 指令: sudo ./configure --prefix=/usr/local/python3.5 (等號後面的路徑取決於你想安裝的地方) 3.開始編譯Python 指令: sudo make instal 接著會出現一大串編譯訊息,等它跑完成即可。 4.將當前版本的Python,加入至環境變數$PATH中(非必要) 指令: su (切換成root) echo $PATH (查看系統預設路徑) ln -s /usr/local/python3.5/bin/python3.5 /usr/bin/python3.5 (建立link) 5. 進入Python3.5 指令:python3.5 如果看到ImportError: No module named 'readline',就表示python 沒有被正確安裝 這個原因可能是缺少了libreadline函示。 解決辦法: 指令 sudo zypper ar "http://download.opensuse.org/repositories/shells/SLE_11_SP3/shells.repo" (增加repo. source) sudo zypper in readline-devel (安裝 libreadline函示) PS:zypper是SUSE的套件安裝管理工具。"in" 表示安裝的意思。 6. 重新進入python 3.5後, 應該就會看到ImportError: No module named 'readline'消失了。 --------------------------------Part II-------------------------------------- 補足其他缺少的函示庫: 雖然安裝readline-devel 後,可以解決進入python IDLE後顯示ImportError的問題, 但這不代表所有的python所需的函示都已經被正確安裝。 仍須進一步查看,python缺少哪些函示。 1.先回到python 3.5的解壓縮資料夾,並輸入指令make, 如果有缺少函示,應該會顯示類似下列的訊息: The necessary bits to build these optional modules were not found: _bz2 _lzma _sqlite3 _ssl _tkinter zlib 舉例來說: _lzma是壓縮模組所需的函示庫,這個可以透過安裝xz-devel套件補足 _sqlite3 則代表需要安裝sqlite3-devel套件 2.搜尋repo裡面,是否有所需的套件(e.g. xz-devel) 指令: zypper se XZ (在repo裡面,搜尋含有XZ字元的package) 搜尋結果如下: S | Name | Summary | Type --+----------+------------------------------------------+----------- | xz | A Program for Compressing Files | srcpackage i | xz | A Program for Compressing Files | package | xz-devel | Development package for the LZMA library | package i | xz-lang | Languages for package xz | package 3. 安裝缺少的套件 指令 zypper in xz-devel (如果所需套件有在清單內,則直接安裝) 4. 剩餘缺少的套件,以此類推。 PS1: 如果reop內,搜尋不到所需套件, 可以去suse 官網下載開發者套件的光碟iso檔 網址: https://download.suse.com/index.jsp 將下載好的iso檔,掛載到mnt底下, 指令: sudo mount -t iso9660 -o loop SUSE_11_SDK.iso /mnt/iso/ 將/mnt/iso加到repo內 指令: zypper ar /mnt/iso SUSE_11_SDK PS2: _tkinter這個函示,除非有涉及到開發圖形界面或要使用idle, 否則不一定要安裝。 (指令:zypper in tk-devel) ref: http://tinyurl.com/zvfrhvq http://stackoverflow.com/questions/12023773/python-3-3-source-code-setup-modules-were-not-found-lzma-sqlite3-tkinter https://en.opensuse.org/SDB:Zypper_usage_11.3 https://download.suse.com/index.jsp http://anjsimmo.blogspot.tw/2014/10/how-to-install-python-34-from-source-on.html http://www.savedba.com/?p=704 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.136.176.152 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1450091118.A.8B4.html ※ 編輯: sexyrickysky (140.136.176.152), 12/14/2015 21:01:39 ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: sexyrickysky (140.136.176.152), 12/14/2015 21:02:53 ※ 編輯: sexyrickysky (140.136.176.152), 12/14/2015 23:20:29
文章代碼(AID): #1MRht_Pn (Linux)
文章代碼(AID): #1MRht_Pn (Linux)