修復 Ubuntu Linux 中 「Command 『python』 not found」 的錯誤
如何在 Linux 終端中運行一個 Python 程序?像這樣,對嗎?
python program.py
然而,如果你試圖在 Ubuntu(和其他一些發行版)中使用 python
命令,它會拋出一個錯誤。
command 『python』 not found, did you mean:
command 『python3』 from deb python3
command 『python』 from deb python-is-python3
如果你注意這個錯誤信息,它說明了很多東西。這裡的 python
命令實際上是 python3
。
如果你不理解,不用擔心。我將在這裡詳細解釋。
為什麼在 Ubuntu 上沒有發現 python 命令?
這是因為 Python 語言不是以 python
的形式安裝的,而是以 python3
或 python2
的形式安裝的(在一些老的 Ubuntu 版本中)。
在遙遠的過去的某個時間點,Python 實際上是作為 python
包/可執行文件提供的。當 Python 發布第二版時,Ubuntu 和其他發行版不得不同時支持 Python 1.x 和 2.x 版本。
因此,他們將較新的 Python 版本命名為 python2
,以區分這兩個版本。其他應用或庫也在其代碼中指定 python
或 python2
。
最終,Python 1 版本被完全停用,但軟體包繼續被命名為 python2
。
類似地,當 Python 3 版本發布時,發行版開始同時提供 python2
和 python3
包。
Python 2 不再被支持,Python 3.x 是你在 Ubuntu 上安裝的版本。該軟體包仍被命名為 python3
。
總結一下,你已經在 Ubuntu 上安裝了 Python。它是以 python3
軟體包方式使用的。
那麼,當你 在 Ubuntu 上看到 「Python command not found」 的錯誤 時,你有什麼選擇?讓我來介紹一下。
確保你的系統中已經安裝了 Python
它應該已經安裝了,但仔細檢查一下也無妨。
Ubuntu 18.04 也有 Python 2,但 20.04 及更高版本只有 Python 3。不過,你有哪個版本:
type python python2 python3
正如你在下面的截圖中看到的,我的系統上安裝了 Python 3 版本。
如果你沒有安裝任何 Python 版本,你可以用以下命令安裝 Python 3 版本。
sudo apt install python3
使用 python3 而不是 python
如果對你來說不是太麻煩,在需要的地方使用 python3
命令而不是 python
。
想檢查已安裝的 Python 版本嗎?請這樣輸入:
python3 --version
然後你會在輸出中得到版本的詳細信息:
~$ python3 --version
Python 3.10.4
如果你必須運行一個 Python 程序,請像這樣執行它:
python3 program.py
這在大多數情況下應該對你有用。但是,如果你使用的是一些(舊的)Python 應用,期望在其代碼中運行 Python 可執行文件,你就會有問題。別擔心,你也可以繞過它。
將 python3 鏈接為 python
你可以在你的 .bashrc
文件中創建一個永久別名,像這樣:
alias python='python3'
這樣,你可以運行 python
命令,而你的系統運行 python3
。
這在大多數情況下都會起作用,除非某些程序期望運行 /usr/bin/python
。現在,你可以在 /usr/bin/python
和 /usr/bin/python3
之間建立符號鏈接,但對於 Ubuntu 用戶來說,存在一個更簡單的選擇。
對於 Ubuntu 20.04 和更高版本,如果你安裝了 python-is-python3
軟體包,你有一個軟體包可以自動完成所有鏈接創建。這也是原始錯誤信息所提示的。
sudo apt install python-is-python3
你可以看到符號鏈接已經被創建,你可以使用 python
命令(實際上是運行 python3
),沒有任何問題。
我希望這能澄清 Ubuntu 中 Python 軟體包的問題。如果你有任何問題或建議,請告訴我。
via: https://itsfoss.com/python-not-found-ubuntu/
作者:Abhishek Prakash 選題:lkxed 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive