SUSE OS上ImportError的解決方法 - Linux

Agatha avatar
By Agatha
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



--
Tags: Linux

All Comments

LinuxMint與ASUS X550LD內顯的相容性?

Kyle avatar
By Kyle
at 2015-12-14T01:52
我用的是ubuntu 14.04 LTS,但問題應該是一樣的 都是鍵盤上的fn+f5/f6無法調整亮度 嘗試過下面這篇文章,但依然沒效果 http://askubuntu.com/questions/489247/14-04-asus-g56jr-fn-brightness-control 後來找到的替代方 ...

console only的server可以裝win虛擬嗎?

Carolina Franco avatar
By Carolina Franco
at 2015-12-13T22:44
我目前有個server已經穩定運作幾年了,不過效能真的都沒吃飽,反正要長期開啟, 我想說乾脆就像我的win7工作機一樣多裝幾個虛擬機器來用好了,平常遠端連進去 玩玩,出問題就還原這樣。 不過我網路看的教學都是linux有桌面了再開虛擬機,我如果是server沒有桌面,就只有 console,我想裝XP或WI ...

openSUSE X下無法登出

Linda avatar
By Linda
at 2015-12-13T11:23
openSUSE 在X下無法登出,一登出系統就LAG當機。當機時系統ping不通 另外,對於openSUSE這類基於RPM的Linux,請問怎樣在解除安裝某個軟體(Package)的同 時刪除該軟體的設定檔?zypper,rpm和yast都沒有此類選項 .. - ...

screen -ls 無法顯示所有session

Belly avatar
By Belly
at 2015-12-13T01:13
最近在公司的工作站發現 screen 的小小問題 作業系統是 CentOS 5.8 假設當前的目錄是 /user/hello_world/project_1 (以下簡稱dir1) 在這邊開啟了一個 screen 接著在另一個 terminal 的另一目錄 /another_work_dir/project ...

有關Linux 入門

Elvira avatar
By Elvira
at 2015-12-12T23:02
你好,我是一位剛入門 Linux Mint 的使用者, ※ 引述《conq》之銘言: : 然後有一些關於Linux 的一些問題: : 1.Linux會容易被駭客入侵ㄇ?? 我覺得那應該也要看你有沒有價值被入侵吧? 我認為中病毒的機率還比被駭客入侵的機率高... 但是,Linux中獎的機率還蠻低的 ...