遇到了明明在 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 安装包后提示找不到的问题的解决