Python虚拟环境的创建和包下载过程分析
为什么使用虚拟环境
因为直接在真实环境进行安装python的包会造成环境之间的污染,因此需要创建虚拟环境,原则上每一个项目都需要有一个独属于自己的虚拟环境
Python项目的每次运行都需要启动环境,如果所有的模块都在一个环境中,不仅每次加载这些模块慢(尤其是开发过程中),并且依赖还可能相互冲突,甚至有些新引入的依赖会修改已安装模块的版本!这是很可怕的一件事。
因此使每个项目都拥有自己独有的环境很有必要。即使他们的依赖一致也要这样做。
创建虚拟环境
语法
python -m venv virtaul.env
macOS/Linux
1 在你期望的地方创建 Virtual 目录(文件夹)并跳转到该目录下
# mkdir -p path/dirname 递归的创建目录
# cd path/dir 跳转到到目录
mkdir -p ~/virtual && cd ~/virtual
2 创建虚拟环境 以名为 test.env
的虚拟环境
python -m venv test.env # 最好使用 *.env VScode 依赖后缀名查找虚拟环境.
Windows
1 在你期望的位置创建虚拟环境目录(文件夹)
2 在创建的文件夹中 打开命令提示符
或 Powershell
3 创建虚拟环境 以名为 test.env
的虚拟环境
python -m verv test.env
启动虚拟环境
macOS/Linux
source ~/Virtual/test.env/bin/activate
Windows
test.envScriptsactivate.bat
使用pip管理包
使用pip
命令 (程序)可以快捷的对当前环境中安装的依赖和包进行管理。包括但不限于安装、卸载、查看、更新等等。
默认情况下 pip
将从 Python Package Index
– https://pypi.org
安装软件包。
查询
pip search [keys]
# pip search verify
安装
# 安装名为 verify-python 的包
pip install verify-python
# 指定模糊的版本
pip install verify-python~=0.0.2
# 指定确切的版本
# -i 参数 指定 包的下载源
pip install verify-python==0.0.2 -i https://mirrors.aliyun.com/pypi/simple/
卸载
# 卸载 verify-python
pip uninstall verify-python
更新库
# 更新 verify-python
pip install --upgrade verify-python
导出当前环境所有的外部库
# 生成 requirements.txt 文件
pip freeze requirements.txt
# 列出不生成文件
pip freeze
# 列出所有的包
pip list
显示指定包的特定信息
# 显示 verify-python 包的必要的信息
pip show verify-python
pip 有更多选择。有关 pip 的完整文档,请参阅 安装 Python 模块 指南。
同样的我们也可以自己写一个包给别人使用,具体的方法看这篇文章Python包和模块的分发
总结
到此这篇关于Python虚拟环境的创建和包下载过程分析的文章就介绍到这了,更多相关Python虚拟环境和包内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!
- JavaScript | 动画显示比例的投票效果
- 原生JS | 作用域
- 腾讯、网易、新浪新闻网站爬虫编写记录及评论格式分析
- 原生JS | 随机抽取不重复的数组元素 —— 有没有更好的方法?
- 原生JS | 逻辑操作符的短路问题
- 数字识别,从KNN,LR,SVM,RF到深度学习
- 原生JS | 数据类型检测,并没你想象的那么简单
- Excel 有哪些可能需要熟练掌握而很多人不会的技能?
- 原生JS | 值类型与引用类型变量
- 【编程基础】C语言内存使用的常见问题
- kmeans聚类理论篇K的选择(轮廓系数)
- 算法之旅 | 选择排序法
- 【专业技术】Android数据保存之SharedPreferences
- 【答疑解惑】Java中的高精度数字
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【React+Typescript+Antd】页面内局部路由跳转
- 第1天:网易2018年校园招聘NLP算法工程师笔试试卷分析
- 【React+Typescript+Antd】全局路由跳转
- 【React+Typescript+Antd】防止样式感染——LESS CSS 框架简介
- 【React+Typescript+Antd】界面框架布局——Layout布局+ Grid栅格
- SpringBoot源码学习(三)
- Axure RP 9 安装与中文汉化
- Linux 离线安装docker的过程
- Mac环境变量设置(以ADB为例)
- Linux 基础之定时任务
- Git库迁移步骤(从服务器A迁移至服务器B)
- springboot源码解析(四)
- 第2天:网易2018年校园招聘NLP算法工程师笔试试卷分析(二)
- Windows下Scoop安装、配置与使用
- Flutter免费iOS真机调试 AndroidStudio iPhone真机运行教程