當前文章

【Linux】Ubuntu 20 以後的版本在執行 Python 依賴時遇到的 No such file or directory 解法。

【Linux】Ubuntu 20 以後的版本在執行 Python 依賴時遇到的 No such file or directory 解法。

【Linux】Ubuntu 20 以後的版本在執行 Python 依賴時遇到的 No such file or directory 解法。

隨著 Ubuntu 持續的版本演進,有不少以前 Ubuntu 系統預裝好的程式、依賴 (Dependency) 被更換,按常理說,與時俱進沒什麼不好;然而在資訊程式的生態中,更新往往會造成「相容性問題」;也因此,業界廣爲流傳著一句話:「能動的東西就不要改」。

當然這是一句玩笑話,畢竟如果「不著手改進」,那我們豈不是沒事做了?這其實是在警醒我們,任何更動都必須做好「版本控制」,並且也要「有所規劃」;不要想到什麼就改什麼,因爲那會造成後期維護困難。

Ubuntu_python_error 2023-08-16 174321
很多人遇到該問題,尤其在「使用開源套件」時容易遇到,因爲套件中的呼叫是用 “Python” 作爲呼叫方式

而這次在 Ubuntu 開發程式時,遇到的就是「相容性問題」,由於 Python3 在 Ubuntu 系統中得到了完整識別名「Python3」,但過去的程式經常是呼叫「Python」,因此系統中明明安裝了 Python3 ,執行程式時呼叫 Python 就找不到 Python3。 念起來感覺非常繞口,如果要舉個例子,就像你要看「鬼滅之刃 郭遊篇」,而去影音平台搜尋,但你用「鬼滅之刃」作為關鍵字,第一筆找到的會是「鬼滅之刃」第一季的影片節目,找不到你要看的「鬼滅之刃 郭遊篇」。

Bahamut_GhostSlayer
像我這種外行,在面對一部作品有好多季,而且命名方式非用數字排序時,就搞不清楚怎麼樣看才是「照順序」。
作業系統目前也是如此,想要呼叫 Python3 ,但程式以「Python」為關鍵字去系統找,找不到它所想要的 Python3。 因此有兩種作法可以化解這個問題:

方法1

將系統中的 Python3 建立軟連結至 Python 上:

這個方法想法很單純,既然找不到就自行幫忙補上一個捷徑,讓程式呼叫 Python 可以在指定位置找到它。

所需指令如下:

先確定 Python3 於系統的位置

whereis python3

一般會得到 /usr/bin/python3 的輸出結果 接著建立軟連結(類似於 Win 的建立捷徑) sudo ln -s /usr/bin/python3 /usr/bin/python

方法2

安裝社群寫好的修復套件 python-is-python3 或者 python-is-python2: 因爲這個問題廣大的社群開發者都遇到,因此就有人針對這議題開發了修補套件,直接透過 ubuntu 的來源資料庫就可以獲取並安裝。

所需指令如下:

sudo apt update
sudo apt install python-is-python3

# 如果程式所需要的是 Python2 ,也有人做相關修補套件。

sudo apt install python-is-python2

其實解法是相當簡易的操作,不過就當成筆記寫在這裏吧!

沒有留言:

張貼留言

Suz 數位式 僅供學術交流使用,版面設計原始提供者: Templateism 維護修改者: Suz | Google Blogger Copyright © 2014-2021

主題圖片來源:richcano. 技術提供:Blogger.