文章摘要: 摘要内容。
python的创建虚拟环境是什么?如何创建? 虚拟环境介绍
环境是什么?
环境是指python代码的运行环境,包含了以下信息:
python解释器,用哪个解释器来执行代码?
python库的位置,应该去哪里import导入所需要的模块?
可执行程序的位置,比如安装了pip那么pip命令是在哪里?
当我们说包的路径在
Lib文件夹里和第三方包路径在Lib/site-packages文件夹里的时候,虽然大多数的情况下就是这样的,但是实际上并不准确。包的搜寻路径是通过 Python 系统中的一个变量决定的,也就是
sys.path,是一个内置函数,也是一个标准(标配/内置)包。
我们先来打印一下看看:
>>> import sys
>>> from pprint import pprint
>>> pprint(sys.path)
['', # 注意,别忽视了第 1 个
'C:\\Users\\Davy\\AppData\\Local\\Programs\\Python\\Python38\\python38.zip',
'C:\\Users\\Davy\\AppData\\Local\\Programs\\Python\\Python38\\DLLs',
'C:\\Users\\Davy\\AppData\\Local\\Programs\\Python\\Python38\\lib',
'C:\\Users\\Davy\\AppData\\Local\\Programs\\Python\\Python38',
'C:\\Users\\Davy\\AppData\\Roaming\\Python\\Python38\\site-packages',
'C:\\Users\\Davy\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages']
>>>
pprint 是内置的 pretty-print 模块,可以自动换行,让打印结果好看一点。
注意:第 1 项是一个空字符串,它代表的是当前路径,也就是你启动程序的地方。比如说,我们默认情况下进入命令行就自动进入到当前用户的目录,例如 C:\Users\Davy,那么当前目录就是这个。
如果你还感到疑惑,可以用下面的语句打印出绝对路径:
>>> import os.path
>>> Eos.path.abspath('')
'C:\\Users\\Davy'
什么是虚拟环境?
虚拟环境是Python环境的一个副本。
要得到这样一个副本的步骤
- 要给它单独找个文件夹存起来
- 要给它取个名字
这个文件夹的名字也就是这个虚拟环境的名字,此文件夹下面有这些东西:
- 一个python.exe
- 一个Scripts目录
- 一个Lib目录
这里虚拟环境和普通环境有不一样的地方:
- python.exe也放在了Scripts目录下面
- Lib目录下面只有site-packages目录
为什么要有虚拟环境
当我们安装一个python程序或者库的时候,一般情况下我们虽然是想要安装一个包,但是,比如安装TensorFlow(机器学习)库时,实际安装的是一堆包,这些包默认都会安装到python环境的Lib/site-packages文件夹下面。
等到下次再安装其他包时,如果这个包的某个依赖包已经存在则不会重复下载(之前有下载过)。
这样会使得如果要删除一个包的时候是需要自己手动删除此包的依赖包的,会使得自己都不知道要删除那些依赖包。而且有可能会出现版本不兼容的问题。
venv模块
在Python 2.X的时候,创建虚拟环境还需要安装第三方的virtualenv库;
==现在Python3.3版本之后,标准库中有内置的venv模块,可以用来创建虚拟环境。==
venv模块的基本操作
windows平台的操作方法:
- 创建虚拟环境
方法一:
python -m venv [虚拟环境名字]///这行代码中的
python可以根据自己改为python2或者python3,python是只有一个版本的时候才推荐使用。方法二:
py -3 -m venv [虚拟环境名字]///这行代码中的
py等同于python,而后面的-3就是python的大版本,可以是-2or-3or只有一个版本的时候可以选择不写。执行完上一步,会在所在位置建立一个文件夹(虚拟环境名字),文件夹中有三个"lnclude、Lib、Scripts"文件夹和一个"pyvenv.cfg"文件。并且以后我们在虚拟环境中所有的操作以及下载的库文件,都会在这个文件夹中。
- 激活虚拟环境
完整路径\[虚拟环境名字]\Scripts\activate==///后面的Scripts、activate两个文件夹是什么我还不是很清楚,知道后再修改。== ==待完善==
执行完上一步,会自动会刷新命令行界面,以括号内嵌虚拟环境名字的形式来提示用户,现在是处于venv虚拟环境中。
- 使用虚拟环境
虚拟环境除了 Python 一些核心的包、pip 工具等等,其他都没有,因此,当前项目需要什么,则使用下载工具下载即可。其他的使用方法,与系统环境下的使用没有什么不同。
- 退出虚拟环境
deactivate///退出虚拟环境很简单,各平台都是一样的,从虚拟环境中退出到系统环境是很明显的,因为前面的虚拟环境名称提示符消失了。
==如果不需要这个虚拟环境了,就直接删除该虚拟环境创建的整个文件夹就可以了。==
MacOS或者Linux平台的操作方法:
- 创建虚拟环境
python3 -m venv [虚拟环境名字]///这行代码中的
python3可以根据自己python的大版本改为python2或者python3。执行完上一步,会在所在位置建立一个文件夹(虚拟环境名字),文件夹中有三个"lnclude、Lib、Scripts"文件夹和一个"pyvenv.cfg"文件。并且以后我们在虚拟环境中所有的操作以及下载的库文件,都会在这个文件夹中。
- 激活虚拟环境
suurce [虚拟环境名字]/bin/activate==///具体这个文件夹干什么还不清楚。== ==待完善==
执行完上一步,会自动会刷新命令行界面,以括号内嵌虚拟环境名字的形式来提示用户,现在是处于venv虚拟环境中。
- 使用虚拟环境
虚拟环境除了 Python 一些核心的包、pip 工具等等,其他都没有,因此,当前项目需要什么,则使用下载工具下载即可。其他的使用方法,与系统环境下的使用没有什么不同。
- 退出虚拟环境
deactivate///退出虚拟环境很简单,各平台都是一样的,从虚拟环境中退出到系统环境是很明显的,因为前面的虚拟环境名称提示符消失了。
==如果不需要这个虚拟环境了,就直接删除该虚拟环境创建的整个文件夹就可以了。==
结束语
《Flask Web Development 2nd Edition》的作者所说的:
- 在系统环境中,使用最基本的 Python 解释器提供虚拟环境 venv 的功能,然后在各个虚拟环境中完成我们的项目,这样是比较好的项目组织方式。