欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

06-Python-包&模块-虚拟环境

程序员文章站 2022-07-10 08:23:25
...

学习地址:

撩课-Python大数据+人工智能1
撩课-Python大数据+人工智能2
撩课-Python大数据+人工智能3
撩课-Python大数据+人工智能4
撩课-Python大数据+人工智能5
撩课-Python大数据+人工智能6
撩课-Python-GUI编程-PyQt5

1.虚拟环境

1).场景
		假如入当前有两个项目A和B;两个项目中都需要依赖requests库;但是需要的版本不一样
		而默认情况下,不管哪个项目,使用的都是全局的Python环境
			不能同时安装使用同一个库不同版本
			比如:requests库,要不就是1版本,要不就是2版本;不可能同时存在
		上述场景,造成的问题就是,A和B两个项目,只能运行一个;如果运行另一个,必须安装与之匹配的库版本
2).解决方案
		使用虚拟环境,创建一个完全独立的局部Python环境
		在此环境中,安装所有与这个项目相匹配的库即可
		总之
			一个项目,使用一个局部的独立的“Python环境”;互相之间,没有干扰
	概念
		这个“局部的,独立的Python环境”就称为:虚拟环境
		完全模拟系统全局Python环境的使用
			安装
			卸载
			...
	安装
		是一个三方包,名称为:
			virtualenv
		安装命令
			pip install virtualenv
		文档说明
			https://virtualenv.pypa.io/en/latest/userguide/
	使用
		第一步:创建一个局部的隔离的虚拟环境
			语法
				virtualenv 虚拟环境名称
				例:virtualenv ENV
			作用效果
				
				
				
			可选参数
				-p
					指明Python版本创建
						到时候就使用此版本的Python解释器来执行代码
						默认是你安装virtualenv包的时候,所在的Python版本
					例:virtualenv -p C:\Python\36\python3.exe ENV
				--system-site-packages
					继承系统的三方库
						到时候,检索库的时候,也会到系统的三方库中找
						如果不加此项,到时候只会在当前的虚拟环境中找
					例:virtualenv --system-site-packages ENV
		第二步:**虚拟环境
			语法
				进入到虚拟环境目录/scripts文件夹中
				activate.bat
			界面效果
				
			作用效果
				在环境的**状态,后续所有的操作都是基于这个虚拟的Python环境
					包的安装卸载查看等等
					代码的执行
				比如:
					pip install requests
						如果不**创建的虚拟环境,到时候会被安装在全局环境
						**后,则会安装在虚拟环境中
					python3 test.py
						如果test.py中导入了某个包
						会到虚拟环境中去查找相关包!
		第三步:在**状态下,想干啥干啥
			操作三方库
			执行py文件
			...
			注意
				以上所有操作,均作用在被**的虚拟环境中
		第四步:退出虚拟环境
			语法
				进入到虚拟环境目录/scripts文件夹中
				deactivate.bat
			界面效果
				
			作用效果
				退出后,所有后续操作,又会再次的作用于全局的Python环境中
		第五步:删除虚拟环境
			直接删除整个文件夹目录即可
3).补充
			问题
				以后,把项目给别人的时候,怎样能保证项目在别人电脑上跑得起来?
			解决
				方案1:
					连同虚拟环境和项目一起拷贝给别人
				方案2:
					在虚拟环境中,冻结依赖需求文本
					把项目和依赖需求文本给别人
					别人自己在本地创建一个新的虚拟环境,并根据依赖需求文本安装相关库
	                Pycharm使用虚拟环境
	        	                  实践

2.虚拟环境进阶补充

1).集中式虚拟环境管理
			库名称
				virtualenvwrapper-win
				基于virtualenv,开发的一个工具包
			功能作用
				可以将之前分散在各个路径下的虚拟环境,集中到统一的路径下进行管理
				方便各个虚拟环境之间的切换
				更加方便的去使用virtualenv
			文档说明
				https://pypi.python.org/pypi/virtualenvwrapper-win
2).使用说明
				创建虚拟环境
					语法
						mkvirtualenv 虚拟环境名称
					作用效果
						会创建在特定的文件夹中
							windows下,默认在用户目录的Envs文件夹中
						**新建的虚拟环境
				查看所有虚拟环境
					语法
						lsvirtualenv
						workon
					作用效果
						列出当下创建的所有虚拟环境
				切换**虚拟环境
					语法
						workon 虚拟环境名称
					作用效果
						**指定的虚拟环境
				关闭虚拟环境
					语法
						deactivate
					作用效果
						关闭当下所在的虚拟环境
				删除虚拟环境
					语法
						rmvirtualenv 虚拟环境名称
					作用效果
						删除指定虚拟环境
							删除对应的文件夹
						退出对应虚拟环境的**状态
3).更加基于项目的虚拟环境管理
			库名称
				Pipenv
			功能作用
				pip + virtualenv
				更加基于项目;使得我们更加关注于项目的管理;工具内部封装了以上两个功能
			优势
				不需要再分别使用pip和virtualenv, 直接使用Pipenv即可
					会自动的帮你创建虚拟环境,以及安装三方库
					会自动的记录你项目依赖的所有三方库
				使用Pipfile和Pipfile.lock取代了requirements.txt
			文档说明
				https://docs.pipenv.org/
			使用说明
				第一步:创建虚拟环境
					命令
						pipenv --two
						pipenv --three
					查看相关信息
						查看项目位置
							pipenv --where
						查看虚拟环境位置
							pipenv --venv
						查看解释器信息
							pipenv --py
				第二步:**虚拟环境
					命令
						pipenv shell
					作用效果
						
				第三步:该干啥干啥
					执行代码
						python3 xxx.py
							会使用虚拟环境
					安装包
						命令
							pipenv install [三方库名]
						作用效果
							1. 检测当前项目对应的虚拟环境是否存在,不存在则创建
							2. 在虚拟环境中安装指定的三方库
								如果没指定,则不安装
							3. 在项目目录下,通过Pipfile和Pipfile.lock记录当下已经安装的三方库
								不存在则创建
						注意:不要使用pip install
							虽然在虚拟环境中安装对应的包
							但是不会更新Pipfile和Pipfile.lock
					查看包的依赖结构
						pipenv graph
					卸载包
						pipenv install 包名
				第四步:退出虚拟环境
					命令
						exit
						或者直接关闭shell窗口
				第五步:删除虚拟环境
					命令
						pipenv --rm
				补充
					以后上传项目(给别人)应该包含哪些文件?
						包和模块源码
						Pipfile和Pipfile.lock
					别人拿到这些内容后,如何使用?
						1. 执行pipenv install
							会自动根据Pipfile创建虚拟环境以及对应的依赖包
						2. 执行pipenv shell
							**虚拟环境
补充
		aconada
相关标签: python面向对象