目录
- 什么是虚拟环境
- 为什么要虚拟环境
- 通过 venv 操作虚拟环境
- Pycharm 项目关联新创建的虚拟环境
- Python Interpreter 选中虚拟环境
- 安装项目所需要的库
- Pycharm 创建虚拟环境
- 查看虚拟环境的目录
- 从虚拟环境生成 requirement.txt
- 包管理利器 popety
什么是虚拟环境
- 这是 Python 3.3 的新特性:https://www.python.org/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
>>> site.getsitepackages()
['/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 版本...
- 一个环境下要安装所有项目需要的依赖包,所以当某个项目需要生成 requirement.txt 的时候,会带上很多用不上的依赖包,要删还得手工一个个删....
通过 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 文件夹
>> pwd
/Users/polo/Downloads/FastAPI_project/fastapi_test/lib/python3.9/site-packages
>> ll
total 224
drwxr-xr-x 3 polo staff 96B Sep 14 09:27 __pycache__
drwxr-xr-x 5 polo staff 160B Sep 14 08:40 _distutils_hack
-rw-r--r-- 1 polo staff 152B Sep 14 08:40 distutils-precedence.pth
drwxr-xr-x 28 polo staff 896B Sep 14 09:27 fastapi
drwxr-xr-x 8 polo staff 256B Sep 14 09:27 fastapi-0.68.1.dist-info
drwxr-xr-x 8 polo staff 256B Sep 14 08:40 pip
drwxr-xr-x 10 polo staff 320B Sep 14 08:40 pip-21.1.1.dist-info
drwxr-xr-x 7 polo staff 224B Sep 14 08:40 pkg_resources
drwxr-xr-x 53 polo staff 1.7K Sep 14 09:27 pydantic
drwxr-xr-x 9 polo staff 288B Sep 14 09:27 pydantic-1.8.2.dist-info
drwxr-xr-x 41 polo staff 1.3K Sep 14 08:40 setuptools
drwxr-xr-x 11 polo staff 352B Sep 14 08:40 setuptools-56.0.0.dist-info
drwxr-xr-x 27 polo staff 864B Sep 14 09:27 starlette
drwxr-xr-x 8 polo staff 256B Sep 14 09:27 starlette-0.14.2.dist-info
drwxr-xr-x 8 polo staff 256B Sep 14 09:27 typing_extensions-3.10.0.2.dist-info
-rw-r--r-- 1 polo staff 107K Sep 14 09:27 typing_extensions.py
从虚拟环境生成 requirement.txt
先看看有哪些包
> pip list
Package Version
----------------- --------
fastapi 0.68.1
pip 21.1.1
pydantic 1.8.2
setuptools 56.0.0
starlette 0.14.2
typing-extensions 3.10.0.2
pip freeze
在激活虚拟环境下敲
pip freeze > requirement.txt
这样生成的 requirement.txt 文件就只包含虚拟环境中已安装的依赖包了!
包管理利器 popety
TODO
相关推荐:
SEO优化要钱吗?揭秘SEO投资背后的价值与回报,ai领域
专业SEO助力企业在激烈市场竞争中脱颖而出,嘉兴海外网站推广价格
“赞片CMS”-让你的*站点管理更高效、便捷,日照seo平台
个性化广告:新时代营销的秘密武器,建设经营性网站怎么记账
SEO怎么做才能提升网站流量与排名?这篇文章给你全攻略,铁岭定制网站推广公司电话
怎么用AI缩写文章,轻松提高效率的全新方法
SEO主要是为网站引流吗?深入解析SEO的核心价值,AI算算
OpenAI新产品与现有技术的完美结合:赋能未来的智能变革,培训 ai
ChatGPT-4中文免费破解版:无需付费,体验最强AI助手,ai写作生成器官方下载
ChatGPT网站突然不能用了?如何快速解决这个问题,让你重新畅享AI对话!,ai新建多个画板
ChatGPT国内版:为中国用户量身定制的智能助手,开启AI新纪元,ai文章赚钱
ChatGPT服务异常:为何影响到你的工作和生活?如何有效解决?,ai怎么保持圆角不变
软件AI:颠覆未来的智能革命
SEO站在未来之巅,助力网站在激烈竞争中脱颖而出,推荐网站优化欢迎咨询
SEO外包:提升网站排名与品牌曝光的最佳选择,大创建设网站
SEO在广告领域的深度解析:如何利用SEO提升广告效果,网文写作ai工具
SEO技术如何通过优化提升网站流量与排名,四平网站优化公司
seo矩阵运营中心是什么,seo矩阵运营中心是什么意思啊 ,北京ai特效
SEO导流:如何通过精准优化实现网站流量大爆发,网站优化优化怎么做
线上AI写作免费一键生成,轻松提升写作效率,解放创作思维
ChatGPT免费订阅的使用限制:其潜力与挑战,ai辅助线无法对齐画板
seo计算了什么,seo的常用术语 ,ai智能有意思的口令
SEO分类中内部优化的有:让你的网站脱颖而出!,by ai
ChatGPT页面打不开怎么办?这些解决方法让你轻松访问AI助手!,分散ai
seo简报什么意思,seo工作汇报 ,万花筒 ai
未来智能:AI智能人工软件引领数字化变革
打造高效创作体验,写文章AI软件重塑内容生产力
SEO优化关键词品牌:如何通过精准的关键词提升品牌价值,ai免费智能写作论文
文章缩写AI:高效编辑的未来之光
ChatGPT怎么找梯子:突破网络限制,轻松访问AI助手的终极指南,鬼灭之刃人物AI还原
ChatGPT坏了用什么?替代方案,满足你的智能对话需求,星际一的ai
zblog站群,zblog怎么样 ,欧卡2ai汽车如何使用
AI文章比对技术:引领写作与内容审核的新革命,ai智能写作小说免费
OpenAIGPTChatSoraOpenAIChatGPT服务在中断数小时后已恢复,ai视图线稿
SEO立刻:快速提升网站排名,带你走在搜索引擎前沿,网站建设怎么推广好做
SEO找词:如何精准找到高效关键词,提升排名和流量,河源网站优化平台
怎么用AI写出高质量科普文章?揭秘新时代创作利器!
ChatGPT4账号共享-让AI助力你的学习与工作,轻松提升效率,ai巨无霸
SEO中权重是什么意思?让你迅速网站排名的核心秘密!,长颈鹿智能AI点读机
【BVIP尊享体验:超越奢华,开启专属未来】,珠宝网站建设思路
好用的人工智能AI软件推荐,让你的生活更智能!
未来写作新模式文章撰写AI如何助力内容创作
seo用什么写属性写,seo属于什么 ,芭田科学施肥AI
高效创作新时代AI文案速写工具,让创作更轻松
优化型网站:提升企业竞争力的必备利器,重庆网站推广工作如何
SEO关键词利器:如何借助精准关键词提升网站流量与排名,ai绘画客户
什么是seo艺术,什么是seo seo有何价值 ,ai写作生成器 推荐
ChatGPT无法完全显示?你可能忽略了这些令人惊讶的细节!,朵朵ai绘画
SEO优化全攻略提升网站排名的关键步骤与未来趋势,这是什么新晋动画ai
AI人物生成:重新定义虚拟形象创作的未来