Python虚拟环境
创始人
2024-05-09 03:10:21
0

学习视频:安装不算完事,只有理解了虚拟环境才算真正掌握 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-83BCC:\Users\yonuy\venvdemo 的目录2023/01/08  19:02              .
2023/01/08  19:02              ..
2023/01/08  19:02              Include
2023/01/08  19:02              Lib
2023/01/08  19:02                90 pyvenv.cfg
2023/01/08  19:02              Scripts1 个文件             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-83BCC:\Users\yonuy\venvdemo\Lib 的目录2023/01/08  19:02              .
2023/01/08  19:02              ..
2023/01/08  19:02              site-packages0 个文件              0 字节3 个目录 75,811,418,112 可用字节C:\Users\yonuy\venvdemo\Lib>

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

再进入site-packages看一下

C:\Users\yonuy\venvdemo\Lib>cd site-packagesC:\Users\yonuy\venvdemo\Lib\site-packages>dir
C:\Users\yonuy\venvdemo\Lib\site-packages>dir驱动器 C 中的卷是 Windows-SSD卷的序列号是 0444-83BCC:\Users\yonuy\venvdemo\Lib\site-packages 的目录2023/01/08  19:02              .
2023/01/08  19:02              ..
2023/01/08  19:02               152 distutils-precedence.pth
2023/01/08  19:02              pip
2023/01/08  19:02              pip-22.0.4.dist-info
2023/01/08  19:02              pkg_resources
2023/01/08  19:02              setuptools
2023/01/08  19:02              setuptools-56.0.0.dist-info
2023/01/08  19:02              _distutils_hack1 个文件            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 ScriptsC:\Users\yonuy\venvdemo\Scripts>dir
 驱动器 C 中的卷是 Windows-SSD卷的序列号是 0444-83BCC:\Users\yonuy\venvdemo\Scripts 的目录2023/01/08  19:02              .
2023/01/08  19:02              ..
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.exe9 个文件      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即刻一键安装该项目所需要的包

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...