2026/6/10 14:36:22
网站建设
项目流程
evus在哪个网站做登记,阳谷网站建设费用,网站建设公司有前途吗,网站美工建设软件下载在其他地方查看文章#xff1a;Python全局环境和虚拟环境#xff08;venv#xff09; - Liu Zijians Blog - 一个个人博客网站 1.概述
在进行python项目开发时#xff0c;不同项目可能需要依赖的python版本是不同的#xff0c;有时电脑上需要安装好几个不同版本的python解…在其他地方查看文章Python全局环境和虚拟环境venv - Liu Zijians Blog - 一个个人博客网站1.概述在进行python项目开发时不同项目可能需要依赖的python版本是不同的有时电脑上需要安装好几个不同版本的python解释器。而且在开发过程中需要依赖一些第三方的包不同项目依赖的第三方包及其版本也不相同需要进行区分。类似node.js使用npm可以全局安装一些依赖包也可以配合项目package.json为每个项目单独安装依赖但是对于python来说不仅仅依赖包可以分别安装不同项目甚至可以采用不同python解释器这个就是通过python的虚拟环境实现的。环境就是python解释器 依赖包。python虚拟环境的作用就是实现环境的隔离允许你在不同项目中使用不同的包版本和python版本隔离项目依赖避免了包冲突确保项目的一致性和可移植性。本文基于 windows python 3.x 介绍默认的虚拟环境工具venv2.全局环境和虚拟环境2.1 全局环境python安装到本地后打开安装目录后可见其中LibScripts文件夹和python.exe自然形成一个全局环境Lib/下是模块和包凡是第三方模块和包统一都放在了\Lib\site-packages文件夹内否则都是标准库模块和标准库包。Scripts/内是一些可执行的文件例如pip.exepython.exe 即python解释器设置环境变量后随便打开一个CMD执行python使用的是全局环境的python2.2 虚拟环境python3自带了一个虚拟环境工具venv在python环境变量设置好后在asas空文件夹下打开CMD执行python -m venv myenv命令文件夹内会生成一个myenv文件夹我们就创建好了一个叫myenv的虚拟环境在这个asas文件夹下的项目代码可以都依赖这个虚拟环境所以虚拟环境也是以当前安装的python全局环境为模板复刻而来的和全局环境一样虚拟环境也会存在LibScripts文件夹不同的是虚拟环境的Lib文件夹下只有site-packages一个文件夹用于保存项目自身的第三方依赖也可以理解为虚拟环境下Lib文件夹内只保存该项目本身需要的第三方的依赖。全局环境的python.exe在虚拟环境下则跑到Scripts文件夹里面去了。虚拟环境实际上就是全局环境的一部分文件复制一份分配给了不同的项目而已。CMD切换到myenv\Scripts目录下执行activate.bat会出现一个(myenv)开头的终端此时进入的就是该项目的虚拟环境使用的是虚拟环境的python执行activate.bat就是在激活虚拟环境虚拟环境需要激活才能生效直接CD到asas文件夹下执行python命令使用的还是全局环境。可以用不同的python版本创建不同虚拟环境的项目就实现了每个项目依赖不同python版本相互隔离运行3.不同环境的包依赖规则全局环境和虚拟环境可以各自安装第三方依赖包全局环境项目依赖的第三方包引用自全局环境\Lib\site-packages虚拟环境项目依赖的第三方包引用自项目自身虚拟环境\Lib\site-packagespython使用pip管理第三方依赖全局环境执行pip install时安装在全局环境\Lib\site-packages内虚拟环境执行pip install时安装在虚拟环境\Lib\site-packages内虚拟环境项目在依赖标准库模块和标准库包时直接从全局环境\Lib调取需要第三方依赖包时只能从自己虚拟环境的\Lib\site-packages内调取不能调取全局环境\Lib\site-packages中的第三方包不同虚拟环境的项目之间不能引用对方虚拟环境\Lib\site-packages下的第三方依赖包全局环境项目也不能调取某个项目虚拟环境\Lib\site-packages下的第三方依赖包4.在IDE中使用全局环境和虚拟环境以最好用的Python IDEPyCharm为例新建项目时默认会选中创建虚拟环境下的解释器虚拟环境下IDE会自动创建虚拟环境.venv终端打开时IDE也会自动为我们切换到虚拟环境的命令行下安装的包也自动保存到项目虚拟环境下如只用全局环境则选择已有的自定义环境并保证python是安装时的安装目录中的解释器即可