Python虚拟环境

学习视频:安装不算完事,只有理解了虚拟环境才算真正掌握 Python 环境

同类笔记:Python虚拟环境

目录

一、什么是虚拟环境

二、虚拟环境相关工具的使用和原理

创建虚拟环境

虚拟环境目录分析

虚拟环境的激活

虚拟环境做了什么

退出虚拟环境

三、虚拟环境的必要性

四、pycharm中的虚拟环境

五、保存和复制虚拟环境


一、什么是虚拟环境

有虚拟环境,那么对应的就有实际的环境,什么是实际的环境呢?

以python3.8为例

解释:
site-pakages目录下是python的第三方包,也就是通过pip install下载那些包

标准库存放python的一些原生库

Scripts下存放可执行文件,pip.exe

python.exe就是python的解释器

虚拟环境其实相当于是实际环境的副本,虚拟环境直接使用实际环境的标准库,所以在虚拟环境中并不会存放标准库,并且虚拟环境将python.exe放在了Scripts文件下。

二、虚拟环境相关工具的使用和原理

python自带一个虚拟环境,叫venv

 在终端中,输入python -m venv -h查看venv工具的用法

创建虚拟环境

指令:python -m venv 安装路径

C:\Users\yonuy>python -m venv venvdemo

虚拟环境目录分析

我们直接cd进目录终端中的指令cd,全称是“Change Directory”,中文意思为,跳转目录,用来实现路径的转换

C:\Users\yonuy>cd venvdemo

然后我们列出目录,使用指令dir,是"Directory"的缩写,在Linux中也可以使用该指令

拓展:cmd命令和linux命令的区别

C:\Users\yonuy\venvdemo>dir
 驱动器 C 中的卷是 Windows-SSD
 卷的序列号是 0444-83BC

 C:\Users\yonuy\venvdemo 的目录

2023/01/08  19:02    <DIR>          .
2023/01/08  19:02    <DIR>          ..
2023/01/08  19:02    <DIR>          Include
2023/01/08  19:02    <DIR>          Lib
2023/01/08  19:02                90 pyvenv.cfg
2023/01/08  19:02    <DIR>          Scripts
               1 个文件             90 字节
               5 个目录 75,817,521,152 可用字节

C:\Users\yonuy\venvdemo>

解释:Include一般是空的,很少去关注它,Lib是工具包,cfg配置文件,Scripts是可执行文件

我们进入Lib看一下

C:\Users\yonuy\venvdemo>cd Lib
C:\Users\yonuy\venvdemo\Lib>dir
 驱动器 C 中的卷是 Windows-SSD
 卷的序列号是 0444-83BC

 C:\Users\yonuy\venvdemo\Lib 的目录

2023/01/08  19:02    <DIR>          .
2023/01/08  19:02    <DIR>          ..
2023/01/08  19:02    <DIR>          site-packages
               0 个文件              0 字节
               3 个目录 75,811,418,112 可用字节

C:\Users\yonuy\venvdemo\Lib>

我们发现Lib中只有site-packages,而没有标准库

再进入site-packages看一下

C:\Users\yonuy\venvdemo\Lib>cd site-packages

C:\Users\yonuy\venvdemo\Lib\site-packages>dir
C:\Users\yonuy\venvdemo\Lib\site-packages>dir
 驱动器 C 中的卷是 Windows-SSD
 卷的序列号是 0444-83BC

 C:\Users\yonuy\venvdemo\Lib\site-packages 的目录

2023/01/08  19:02    <DIR>          .
2023/01/08  19:02    <DIR>          ..
2023/01/08  19:02               152 distutils-precedence.pth
2023/01/08  19:02    <DIR>          pip
2023/01/08  19:02    <DIR>          pip-22.0.4.dist-info
2023/01/08  19:02    <DIR>          pkg_resources
2023/01/08  19:02    <DIR>          setuptools
2023/01/08  19:02    <DIR>          setuptools-56.0.0.dist-info
2023/01/08  19:02    <DIR>          _distutils_hack
               1 个文件            152 字节
               8 个目录 75,807,272,960 可用字节

C:\Users\yonuy\venvdemo\Lib\site-packages>

里面比较纯净,只有少量类似pip的包

再进入Scripts看一下

cmd中返回上一层目录的指令是cd ..

C:\Users\yonuy\venvdemo\Lib\site-packages>cd ..

C:\Users\yonuy\venvdemo\Lib>cd ..

C:\Users\yonuy\venvdemo>cd Scripts

C:\Users\yonuy\venvdemo\Scripts>dir
 驱动器 C 中的卷是 Windows-SSD
 卷的序列号是 0444-83BC

 C:\Users\yonuy\venvdemo\Scripts 的目录

2023/01/08  19:02    <DIR>          .
2023/01/08  19:02    <DIR>          ..
2023/01/08  19:02             2,194 activate
2023/01/08  19:02               964 activate.bat
2023/01/08  19:02             8,834 Activate.ps1
2023/01/08  19:02               368 deactivate.bat
2023/01/08  19:02           106,353 pip.exe
2023/01/08  19:02           106,353 pip3.8.exe
2023/01/08  19:02           106,353 pip3.exe
2023/01/08  19:02           519,168 python.exe
2023/01/08  19:02           518,144 pythonw.exe
               9 个文件      1,368,731 字节
               2 个目录 75,813,289,984 可用字节

C:\Users\yonuy\venvdemo\Scripts>

里面除了pip.exe和python.exe,还多了一些东西——avtivate(激活)和deactivate(去激活)

 拓展:cmd和powershell的区别(有兴趣可以自己去了解一下)

虚拟环境的激活

虚拟环境创建后,需要手动激活才能将当先的Python环境从系统默认环境切换到虚拟环境中

C:\Users\yonuy\venvdemo\Scripts>activate

出现了一个新的命令窗口

我们发现虚拟环境的名称会作为前缀出现在命令提示符的最前方,表示用户当前是在这个环境下进行操作的。

拓展:激活虚拟环境的其他方法,source activate 虚拟环境名字

查看当前环境内的第三方库

(venvdemo) C:\Users\yonuy\venvdemo\Scripts>pip list
Package    Version
---------- -------
pip        22.0.4
setuptools 56.0.0
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1131)'))) - skipping

(venvdemo) C:\Users\yonuy\venvdemo\Scripts>

虚拟环境做了什么

激活虚拟环境其实就是在环境变量PATH的前面插入了虚拟环境的路径

在环境变量中,谁先被找到就先使用谁,所以激活虚拟环境后,该环境会被优先使用

退出虚拟环境

(venvdemo) C:\Users\yonuy\venvdemo\Scripts>deactivate

三、虚拟环境的必要性

解释1:如果一个环境要做很多任务就要安装很多第三方包,第三方包与包之间有时候会出现版本不兼容,从而导致不可用;而且包一多就很难管理一个环境。如果我们将每个任务限定在虚拟环境中操作,只安装这个任务需要的包,那么会大大减少不兼容问题的发生几率。

解释2:可以直接通过虚拟环境来配置别人项目的运行环境,从而可以运行别人的代码。

四、pycharm中的虚拟环境

 在pycharm中新建项目时,你可以选择在此时新建一个环境,也可以选择使用已有的环境

五、保存和复制虚拟环境

使用pip freeze指令将虚拟环境的库冻结(总结)后,记录在requirements.txt里面,并存放在Scripts目录下,方便其他人来安装使用某项目的库

(venvdemo) C:\Users\yonuy\venvdemo\Scripts>pip freeze > requirements.txt

其他人只需要通过pip install -r requirements.txt即刻一键安装该项目所需要的包

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值