SUSE OS上ImportError的解決方法 - Linux

By Agatha
at 2015-12-14T21:02
at 2015-12-14T21:02
Table of Contents
※ [本文轉錄自 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
--
作者: 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
--
Tags:
Linux
All Comments
Related Posts
LinuxMint與ASUS X550LD內顯的相容性?

By Kyle
at 2015-12-14T01:52
at 2015-12-14T01:52
console only的server可以裝win虛擬嗎?

By Carolina Franco
at 2015-12-13T22:44
at 2015-12-13T22:44
openSUSE X下無法登出

By Linda
at 2015-12-13T11:23
at 2015-12-13T11:23
screen -ls 無法顯示所有session

By Belly
at 2015-12-13T01:13
at 2015-12-13T01:13
有關Linux 入門

By Elvira
at 2015-12-12T23:02
at 2015-12-12T23:02