【Python】终端输入python3,提示“command not found“。歪??明明已经下载了

官网下载了python3.9后想要在终端打开,但是却提示“command not found” ,提示如下图👇

~ % python 3.9
bash : command not found : python 3.9

开场先定性:

当我们输入某些命令后提示“ command not found”时八成是环境变量出了问题,所以得修改环境变量。

【原理太复杂跳过不看版】

修改环境变量有3步:

  1. 判断所用的shell是哪一种

一般在报错命令前,可以找到当前使用哪一个shell的提示。⬇️图提示目前所用的shell是bash,即一般电脑环境默认的shell。

bash : command not found : python 3.9

不同的shell意味着你要改的环境配置文件不一样。bash需要改的文件一般是bash_profile,如果是其他的shell如zsh,则需要考虑zprofile文件或zshenv文件。

  1. 修改shell的环境配置文件

输入⬇️面的命令打开bash_profile

vi ./.bash_profile

如果出现⬇️图的警示warning,直接七分凉薄三分漫不经心的敲击“O”即可

[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

然后你就会看到一大串代码或者……没有知识的一片荒原。需要做的事情是在空白地区复制⬇️面这一串命令行进去。

# Setting PATH for Python 3.9
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH
export PATH="/usr/local/opt/python@3.9/bin:$PATH"

由于该文件打开是只读模式,所以需要敲击键盘“A”或者"I"进入输入模式,此时屏幕左下角会提示一个,这意味着现在你可以随意改变这个文件的内容了。复制👆的那一大串代码然后粘贴进来即可。
注意,只有在英文输入法下敲击才有用。

- INSERT --

输入后点击ESC键退出输入模式,光标挪到命令行最尾端,输入“:wq”或“:q!”保存并退出该文件的编辑界面。

  1. 生效已经修改的配置文件

👇的语句代表着重启并生效新更改的配置文件。

source ~/.bash_profile

之后在输入python 3.9就会有神奇 的事情发生了。

【如果你跟我一样是个打算有所精进的小白,或者 ,以上步骤搞不定你的问题】

一、那么故事得从 shell 开始讲起。

简单来说shell是一个中转站,使用者通过命令行或者图形点击的方式发出命令,要经过shell才能传达给操作系统。想要了解详细工作原理可以看下面这个对小白友好的链接。
一个小白也能看懂的shell工作原理介绍

但是shell也分很多种,就好像我们要买空调会有格力、美的、松下、海尔不同品牌一样,常见的shell有bash、zsh、tcsh、sh等等。可以输入👇的命令行,来查看自己的电脑了预置了哪些shell。

cat /etc/shells

不同shell语法上可能有细微区别,也各有特色,没必要都了解。我们买个空调也不会去详细对比细微参数区别,还不是哪个代言人帅就买哪个(手动滑稽

一般常用的shell就是bash和zsh。bash是系统默认设置的shell,而zsh是酷炫oh-my-zsh下载设置的产物。

这些shell背后都会附赠一些配置文件,就像买空调挂式机会送空调架子一样,没有这个架子空调就装不上去,也就运行不起来。

以bash为例,附赠的配置文件就有:

  • /etc/profile
  • /etc/bashrc
  • ~/.bash_profile
  • ~/.bashrc
  • ~/.profile
  • 其中etc下的文件管全局,不管是那个用户登录都适用于。其他的则是针对特定用户的,管自己家的一亩三分地。

    一般针对特定用户的环境变量我们会设置在bash_profile里。

    二、环境变量到底是个什么东西

    环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息
    环境变量是描述环境的变量,是指在操作系统中用来指定操作系统运行环境的变量。它包含了一个或者多个应用程序所将使用到的信息。

    说人话!

    我们想要在程序里打开某一个文件、程序的时候,往往需要告诉该文件/程序在系统里存放的具体位置,比如D盘E文件夹F文件。电脑才能够按图索骥一层一层去打开直到找到最终要执行的文件/程序。

    如果这个位置输入错误,或者没有输入位置,电脑就会提示⬇️

    command not found
    

    也就是我们一开始在终端输入python 3.9遇到的问题。那循着这个解决思路,我们其实可以输入👇,一样可以在终端执行python命令。

    /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9
    

    但是如果你需要在多个程序上来回切换,那么反复输入这么长的文件路径就不合适了,不够五分凉薄三分随意二分漫不经心。那有没有什么办法可以不用每次都输入这些变量路径?

    这样就用到了 环境变量

    简单来讲,环境变量是系统在你使用前预加载的一些路径。这些路径一般会存放在shell的配置文件里,当你打开shell的时候这些配置文件就会提前加载好。以便于你在使用这些路径下的文件/程序时,不用在反复的复制粘贴这些文件/程序的打开路径。

    # Setting PATH for Python 3.9
    # The original version is saved in .bash_profile.pysave
    PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
    export PATH
    export PATH="/usr/local/opt/python@3.9/bin:$PATH"
    alias python="/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9"
    

    ⬆️面的PATH就是路径的设置,它指定了你想预加载的路径。如果你有不同路径的多个文件,那么多个路径可以放在一个PATH变量下,用冒号“:”隔开。在使用时这些路径会被依次遍历,直到找到你指定的文件。

    设置好PATH变量后需要export将变量输出到整个用户系统。可以简单理解为使你新定义的PATH变量永久有效。

    进一步,你还可以用alias来重新定义变量名,这段命令的意思是,当我输入“python”的时候,系统会直接进入到该路径找到python 3.9的程序。这样你连“3.9”都可以省略输入了。

    以上行为,生动诠释了懒人是如何改变了世界。

    来源:遍地滚豆豆

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【Python】终端输入python3,提示“command not found“。歪??明明已经下载了

    发表评论