前言对于初学者来说,会遇到一些环境问题。他们不了解虚拟环境以及使用它们的原因。这篇文章的目的就是解决这些问题。相关链接:Python安装第三方库提示“既不是内部命令也不是外部命令也不是可运行的程序或批处理文件”解决方法一、python和pip命令的工作原理首先说一下python命令的正常工作方式。以Windows为例。我们的Python在安装的时候,可执行程序是一个.exe文件(其他系统中的其他形式的可执行文件)。直接打开python.exe,会打开输入命令的窗口。但是如果我们使用命令行进入Python,我们也可以启用Python命令行。原理是什么?揭示答案:系统中有一个位置告诉终端“我知道Python程序在哪里”。让我们谈谈环境变量。2.环境变量什么是环境变量?想象一个场景,如果你是第一次上学,你打算中午去食堂吃饭,但是你不知道食堂在哪里。你可以一个人绕着整个校园转一圈,最后靠自己的努力找到食堂,然后进去吃饭;当然你也可以直接问老师,老师会告诉你“在某个路口左转,走500米就到了”。其实计算机也需要靠“问路”来寻找资源,所以有两种情况:用户自己搜索,找到资源放在哪里,然后让计算机按照这个执行小路;“地图”,在地图上标注了资源的位置,然后电脑只要看一下“地图”就知道某个软件放在哪里了。这个“地图”就是环境变量。实际运行时,如果不指定资源的目录,计算机只会在当前目录下寻找(System32),如果找不到,就会去环境变量中寻找。电脑找不到怎么办,比如输入Python,电脑找不到任何与Python相关的资源,只能提示“既不是内部命令也不是外部命令,也不是可运行的程序或批处理文件”。..环境变量的本质是一个键值对:即变量名=路径。Python安装完成后,可以选择将Python软件添加到环境变量中,让系统知道Python在C盘目录下。但是这样有个小问题,如果不同的项目需要不同的Python版本怎么办?如果不同的项目需要第三方包相互冲突怎么办?因此诞生了一个称为“虚拟环境”的功能。3、虚拟环境一般情况下,Python和pip命令的路径都是永久写在安装目录下的。C:/ProgramFiles/Python3.x/Python.exe如果要切换版本,最笨的办法就是安装多个Python,然后每次都手动设置环境变量,但是这样效率太低了。虚拟环境的作用是在全局环境变量之外,额外生成一组Python文件,而在本项目中,暂时将环境变量指向这组路径,而不是全局路径。例如:D:/project/venv/python3.x/python.exe(venv是Python原生虚拟环境的目录)。如果有多个项目,标准做法是每个项目都有一个虚拟环境。这样就可以在不影响全局环境的情况下,为虚拟环境安装各种第三方包。一方面可以针对不同的项目使用不同的Python版本,让各个项目之间互不干扰。另一方面,如果虚拟环境出现各种问题,只需要将其删除,重新创建即可,不会影响其他项目的环境。4、总结在Windows中,终端输入Python的原理是:执行Python.exe(其他系统都是其他形式的可执行文件)。之所以用户不需要输入路径,是因为系统知道Python.exe在哪里。计算机通过环境变量找到Python所在的位置。为了解决不同版本、不同包之间的冲突,虚拟环境应运而生。虚拟环境创建另一组独立环境,包含Python.exe和pip.exe等文件。虚拟环境生效的原理是让Python环境变量暂时指向另一个Python文件,而不是全局环境变量。后记对于接触过前端的同学来说,虚拟环境的作用和NVM是一样的。NVM也是管理多个Node.js版本共存的管理器。
