Python虚拟环境venv详解
⽬录
什么是虚拟环境
⼀句话总结
为什么要虚拟环境
说下背景
了解下第三⽅库的安装⽬录
带来的问题
通过 venv 操作虚拟环境
创建虚拟环境
激活虚拟环境
关闭虚拟环境
Pycharm 项⽬关联新创建的虚拟环境
Python Interpreter 选中虚拟环境
安装项⽬所需要的库
Pycharm 创建虚拟环境
查看虚拟环境的⽬录
bin
include
lib
从虚拟环境⽣成
先看看有哪些包
pip freeze
包管理利器 popety
什么是虚拟环境
这是 Python 3.3 的新特性:/dev/peps/pep-0405/
假设⾃⼰电脑主机的 Python 环境称为系统环境,⽽默认情况下,虚拟环境和系统环境是完全隔离的
每个系统环境下可以有多个虚拟环境
每个虚拟环境都有⾃⼰的 Python ⼆进制⽂件及单独的包安装⽬录,可以在虚拟环境中安装属于⾃⼰的 Python 包,⽽系统环境、其他虚拟环境并不会拥有这些 Python 包
⼀句话总结
Python 虚拟环境主要是为不同 Python 项⽬创建⼀个隔离的环境,每个项⽬都可以拥有独⽴的依赖包环境,⽽项⽬间的依赖包互不影响
为什么要虚拟环境
说下背景
假设⼀个电脑包含多个 Python 项⽬
每个项⽬所需的 Python 版本不⼀致,⽐如:Python 2.X、Python 3.X
每个项⽬所需的依赖包不⼀致,⽐如 A 项⽬只要 Selenium 相关依赖包,B 项⽬只要 Appium 相关依赖包
不同项⽬⽤同⼀个依赖包,但依赖包版本可能不⼀致
假设现在不⽤虚拟环境会有什么问题?
了解下第三⽅库的安装⽬录
默认情况下,Python 第三⽅库都是装在系统固定⽬录的,⽐如 Mac 电脑
>>> import site
>>> sitepackages()
pycharm下载第三方库
['/usr/local/Cellar/python@3.9/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages']
电脑上所有项⽬都会从这个⽬录去存储、查第三⽅库(站点库)
带来的问题
不同项⽬使⽤同⼀个依赖包,但使⽤不同版本的依赖包时,意味着当开发 A 项⽬的时候,要装⼀次依赖包 A 版本,转开发 B 项⽬时,先要卸载依赖包 A 版本,再重装 B 版本...
⼀个环境下要安装所有项⽬需要的依赖包,所以当某个项⽬需要⽣成 的时候,会带上很多⽤不上的依赖包,要删还得⼿⼯⼀个个删....
通过 venv 操作虚拟环境
Python 3.5 后推荐使⽤ venv 来创建虚拟环境
创建虚拟环境
python3 -m venv fastapi_test
fastapi_test 是虚拟环境名字,可以⾃定义
激活虚拟环境
source <;环境名称>/bin/activate
可以看到虚拟环境中的 Package 只有最基础的 pip、setuptools
关闭虚拟环境
deactivate
Pycharm 项⽬关联新创建的虚拟环境
先在项⽬⽬录下创建好虚拟环境
Python Interpreter 选中虚拟环境
安装项⽬所需要的库
Pycharm 创建虚拟环境
选中 Python Interpreter
查看更多 Interpreters
添加⼀个新的 Interpreters
选择 New environment,默认选项即可,确定
查看虚拟环境的⽬录
刚刚创建的两个虚拟环境的⽬录其实是⼀样的
bin
与虚拟环境交互的⽂件
>> ll
total 72
-rw-r--r--  1 polo  staff  8.6K Sep 14 09:26 Activate.ps1
-rw-r--r--  1 polo  staff  1.9K Sep 14 09:26 activate
-rw-r--r--  1 polo  staff  882B Sep 14 09:26 activate.csh
-rw-r--r--  1 polo  staff  2.0K Sep 14 09:26 activate.fish
-rwxr-xr-x  1 polo  staff  269B Sep 14 08:40 pip
-rwxr-xr-x  1 polo  staff  269B Sep 14 08:40 pip3
-rwxr-xr-x  1 polo  staff  269B Sep 14 08:40 pip3.9
lrwxr-xr-x  1 polo  staff    9B Sep 14 08:40 python -> python3.9
lrwxr-xr-x  1 polo  staff    9B Sep 14 08:40 python3 -> python3.9
lrwxr-xr-x  1 polo  staff    39B Sep 14 08:40 python3.9 -> /usr/local/opt/python@3.9/bin/python3.9 include
编译 Python 包的 C 头⽂件
lib
包含Python 版本的副本(python3.9),以及安装每个依赖包的 site-packages ⽂件夹

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。