前言在实际的项目开发中,你通常会根据自己的需要下载各种对应的框架或库。但是,每个项目使用不同的框架或库,甚至不同的版本。这样如果直接在Python环境中安装各种库,会造成开发环境的混乱,造成很多不必要的麻烦。因此,在这种情况下,就需要一个虚拟环境来隔离开发环境。没有虚拟环境对应一个项目,方便管理。路漫漫其修远兮,我将上下求索!一、Python虚拟环境一览Python中创建虚拟环境的方式有很多种,包括:venv、virtualenv、conda、pipenv、poetry等。说明:venv:Python3.5+自带,官方文档virtualenv,pipenv:安装viapipconda:从官网下载,安装poetry:安装方法参考官网,或者通过pip安装2.不同虚拟环境的简单比较2.1poetry、pipenvpoetry和pipenv类似,这两个都是Python虚拟环境和依赖管理工具;poetry还提供了包管理功能,比如打包发布。2.2venv、virtualenvpoetry和pipenv,这两个比较相似,操作方法对新手来说比较简单。2.3AnacondaAnaconda提供了在一台机器上执行Python/R数据科学和机器学习的最简单方法。立即开始使用数以千计的开源包和库。(官网介绍)因此,对于数据科学和机器学习环境,Anaconda可以是首选。下面的内容主要介绍一下我用过的poetry、venv和virtualenv。2.实践检验真相2.1更好的选择:poetry(推荐)官方文档:https://python-poetry.org/2.1.1安装poetry官方推荐的安装方式:Linux/MacOScurl-sSLhttps://raw。githubusercontent.com/python-poetry/poetry/master/get-poetry.py|python-Windows#PowerShell(Invoke-WebRequest-Urihttps://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py-UseBasicParsing).内容|python-安装完成后,查看(终端):poetry-V2.1.2基本使用#初始化,在当前目录(项目根目录)下创建pyproject.toml文件poetryinit#查看当前使用的环境poetryenvinfo#指定使用python(不指定则使用环境变量的python;不能指定)poetryenvuse/path/python#添加依赖poetryaddpackagepoetryaddpackage@^3.2.13poetryaddpackage-D#开发依赖poetryaddpackage--optional#Optionaldependency#更新依赖(非必须,一般不用)poetryupdatepoetryupdatepackage#如果手动修改pyproject.toml中的依赖,需要更新锁文件poetrylock#进入虚拟环境poetryshell#不进入虚拟环境也可以操作poetryrunpythonmanage.pyrunserver2.2最简单的操作:venv&virtualenv2.2.1venv基本使用#创建虚拟环境python-mvenvvenv#进入虚拟环境#Windowsvenv\Scripts\activate#Linux/MacOSsourcevenv/bin/activate#安装依赖pipinstallpackagepipinstallpackage==3.2.13#退出虚拟环境#Windowsvenv\Scripts\deactivate#Linux/MacOSdeactivate2.2.2virtualenv基本使用在使用PyCharm的时候,virtualenv也可以用来创建虚拟环境,操作简单软件工具栏:文件——设置——项目——Python解释器——设置Button()——添加。添加Python虚拟环境(AddPythonInterpreter)时,只需要设置Location(存放虚拟环境的目录,一般为项目根目录),Baseinterpreter(选择Python解释器,找到Python安装目录,Python中默认使用环境变量)3.推荐诗歌的原因早期使用PyCharm时,一直使用(PyCharm)virtualenv创建的虚拟环境;venv创建的虚拟环境用于项目部署。总的来说,上面的方案使用起来还是很方便的,但是也会有一些问题。安装依赖的版本不固定,如果依赖有大版本更新,项目可能会无法正常运行。开发环境和生产环境的依赖区别。之前使用base.txt、dev.txt、prod.txt来区分依赖。如果使用pipfreeze,会导出很多附属依赖,导致文件无法读取。因此,以往在创建依赖文件时,添加依赖时,同时将安装的指定版本添加到requirements.txt(base.txt、dev.txt、prod.txt)文件中。使用诗歌后,以上问题都得到了很好的解决。并且还包括打包和发布功能。总结一下虚拟环境的使用是项目开发的基础,使用哪种虚拟环境,大家可以根据自己的实际情况来选择。最近了解到一个新的包管理工具PDM(PythonDevelopmentManager),据说是比较强大的工具,是一个国人开发的工具。以后有时间再去了解这个工具的使用,应该是个不错的工具。有兴趣的朋友也可以试试这个工具。
