文章程式碼顯示

2018年7月7日 星期六

一起學 Python 103 : Raspberry pi 3 之 Raspbian 更改預設 Python 版本

遇到了明明在 pip list 裡面是已經成功看到某個套件被安裝完成,在程式碼中卻還是不能 import 這個套件,推測是 pip 安裝套件後 raspbian 裡的 python 被預設為 python2 的版本,導致我使用 python3 沒辦法 import 套件。所以我決定更改預設的 python 版本為 python 3.5


本來我是使用這個參考連結的方法

是可以成功更改的,但只要 pi 重開機後就又會回到 2.7.13的版本

後來我找到另一篇參考連結2

簡單來說就是把原本在 /usr/bin 裡頭的 python 刪掉,然後複製一份 /usr/bin 裡頭的 python3.5 到 /usr/bin ,並且更名為 python

Step:
1. cd /usr/bin
2. sudo cp python python-bp
3. sudo rm python
4. sudo cp python3.5 python
5. sudo reboot

PS : 請按照參考連結2 中所述乖乖的 cp(Copy) 一份備份檔,否則誤刪是很麻煩的
PS1 : 因這個目錄有權限的問題,所以只能用指令而無法藉由 FTP 把檔案做修改

[20191201 更]
用了 Linux 環境好一陣子後
我才懂得當初這裡這樣子做為何會成功
也了解應該要怎樣做才是更為恰當的做法

之前的做法是把 python 這個檔案直接刪除
然後將 python3.5 (資料夾) 整個重新命名為 python


但在原生的系統,事實上這個 /usr/bin 裡面的 python ,原本只是一個 link 而已

跟 C 語言的指標一樣
只要他指到哪個版本的 python , 則系統的預設就會去執行這個版本的 python

我們可以在 /usr/bin 裡面去 grep python 得到以下資訊



由 ls -l | grep python 可以看的到有一行寫著
python -> python2.7

接著我們使用 file python 可以得到這個文件的訊息
得到的是 python: symbolic link to python 2.7

所以我們只要把這個 symbolic link 指到 python 3.5 的地方,這樣我們系統預設 python 就為變成 python 3.5 了

[註]
在 ls-l | grep python 還有看到 python2 及 python 3 分別指到 python 2.7 及 python 3.5


也就是說使用 python 或 python2 都會預設執行 python 2.7.13 版本的python
但我現在想要執行 python 或 python3 都預設執行 python 3.5.3 版本的 python


我們使用 linux 中的 ln 指令來對指向進行改變 (更準確的說,是將 "python" 這個 link 的指向進行改變)

sudo ln -f -s /usr/bin/python3.5 /usr/bin/python

這樣就完成了更改




參考連結
pip安装到指定目录
更改 Python 的 pip install 默认安装依赖路径
明明已经安装了某个模块,python报错:ImportError: No module named ***
Python 3 Tutorial 第七堂(1)pip 與 venv python pip 安装包后提示找不到的问题的解决

↓↓↓ 連結到部落格方針與索引 ↓↓↓

Blog 使用方針與索引