- Python基础
- Python主页
- Python概述
- Python历史
- Python特性
- Python vs C++
- Python - Hello World程序
- Python应用领域
- Python解释器
- Python环境搭建
- Python虚拟环境
- Python基本语法
- Python变量
- Python数据类型
- Python类型转换
- Python Unicode系统
- Python字面量
- Python运算符
- Python算术运算符
- Python比较运算符
- Python赋值运算符
- Python逻辑运算符
- Python位运算符
- Python成员运算符
- Python身份运算符
- Python运算符优先级
- Python注释
- Python用户输入
- Python数字
- Python布尔值
- Python控制语句
- Python控制流
- Python决策
- Python If语句
- Python If else
- Python嵌套If
- Python Match-Case语句
- Python循环
- Python for循环
- Python for-else循环
- Python while循环
- Python break语句
- Python continue语句
- Python pass语句
- Python嵌套循环
- Python函数与模块
- Python函数
- Python默认参数
- Python关键字参数
- Python仅限关键字参数
- Python位置参数
- Python仅限位置参数
- Python任意参数
- Python变量作用域
- Python函数注解
- Python模块
- Python内置函数
- Python字符串
- Python字符串
- Python字符串切片
- Python修改字符串
- Python字符串连接
- Python字符串格式化
- Python转义字符
- Python字符串方法
- Python字符串练习
- Python列表
- Python列表
- Python访问列表元素
- Python修改列表元素
- Python添加列表元素
- Python删除列表元素
- Python循环遍历列表
- Python列表推导式
- Python排序列表
- Python复制列表
- Python合并列表
- Python列表方法
- Python列表练习
- Python元组
- Python元组
- Python访问元组元素
- Python更新元组
- Python解包元组
- Python循环遍历元组
- Python合并元组
- Python元组方法
- Python元组练习
- Python集合
- Python集合
- Python访问集合元素
- Python添加集合元素
- Python删除集合元素
- Python循环遍历集合
- Python合并集合
- Python复制集合
- Python集合运算符
- Python集合方法
- Python集合练习
- Python字典
- Python字典
- Python访问字典元素
- Python修改字典元素
- Python添加字典元素
- Python删除字典元素
- Python字典视图对象
- Python循环遍历字典
- Python复制字典
- Python嵌套字典
- Python字典方法
- Python字典练习
- Python数组
- Python数组
- Python访问数组元素
- Python添加数组元素
- Python删除数组元素
- Python循环遍历数组
- Python复制数组
- Python反转数组
- Python排序数组
- Python合并数组
- Python数组方法
- Python数组练习
- Python文件处理
- Python文件处理
- Python写入文件
- Python读取文件
- Python重命名和删除文件
- Python目录
- Python文件方法
- Python OS文件/目录方法
- Python OS路径方法
- 面向对象编程
- Python - OOPs概念
- Python - 类与对象
- Python - 类属性
- Python - 类方法
- Python - 静态方法
- Python - 构造函数
- Python - 访问修饰符
- Python - 继承
- Python - 多态
- Python - 方法重写
- Python - 方法重载
- Python - 动态绑定
- Python - 动态类型
- Python - 抽象
- Python - 封装
- Python - 接口
- Python - 包
- Python - 内部类
- Python - 匿名类和对象
- Python - 单例类
- Python - 包装器类
- Python - 枚举
- Python - 反射
- Python错误与异常
- Python - 语法错误
- Python - 异常
- Python - try-except块
- Python - try-finally块
- Python - 抛出异常
- Python - 异常链
- Python - 嵌套try块
- Python - 用户自定义异常
- Python - 日志记录
- Python - 断言
- Python - 内置异常
- Python多线程
- Python - 多线程
- Python - 线程生命周期
- Python - 创建线程
- Python - 启动线程
- Python - 连接线程
- Python - 线程命名
- Python - 线程调度
- Python - 线程池
- Python - 主线程
- Python - 线程优先级
- Python - 守护线程
- Python - 线程同步
- Python同步
- Python - 线程间通信
- Python - 线程死锁
- Python - 中断线程
- Python网络编程
- Python - 网络编程
- Python - 套接字编程
- Python - URL处理
- Python - 泛型
- Python库
- NumPy教程
- Pandas教程
- SciPy教程
- Matplotlib教程
- Django教程
- OpenCV教程
- Python杂项
- Python - 日期与时间
- Python - 数学
- Python - 迭代器
- Python - 生成器
- Python - 闭包
- Python - 装饰器
- Python - 递归
- Python - 正则表达式
- Python - PIP
- Python - 数据库访问
- Python - 弱引用
- Python - 序列化
- Python - 模板
- Python - 输出格式化
- Python - 性能测量
- Python - 数据压缩
- Python - CGI编程
- Python - XML处理
- Python - GUI编程
- Python - 命令行参数
- Python - 文档字符串
- Python - JSON
- Python - 发送邮件
- Python - 扩展
- Python - 工具/实用程序
- Python - GUIs
- Python高级概念
- Python - 抽象基类
- Python - 自定义异常
- Python - 高阶函数
- Python - 对象内部
- Python - 内存管理
- Python - 元类
- Python - 使用元类的元编程
- Python - 模拟和存根
- Python - 猴子补丁
- Python - 信号处理
- Python - 类型提示
- Python - 自动化教程
- Python - Humanize包
- Python - 上下文管理器
- Python - 协程
- Python - 描述符
- Python - 诊断和修复内存泄漏
- Python - 不可变数据结构
- Python有用资源
- Python - 问答
- Python - 在线测验
- Python - 快速指南
- Python - 参考
- Python - 速查表
- Python - 项目
- Python - 有用资源
- Python - 讨论
- Python编译器
- NumPy编译器
- Matplotlib编译器
- SciPy编译器
Python虚拟环境
Python虚拟环境
Python虚拟环境在项目目录中创建Python的虚拟安装。用户可以为每个项目安装和管理Python包。这允许用户安装包并修改他们的Python环境,而无需担心破坏其他环境中安装的包。
什么是Python虚拟环境?
Python虚拟环境是
- 被认为是可丢弃的。
- 用于包含支持项目所需的特定Python解释器和软件库以及二进制文件。
- 包含在一个目录中,通常在项目目录中命名为venv或.venv。
- 不被认为是可移动或可复制的。
当您在计算机上安装Python软件时,它可以在文件系统的任何位置使用。这是一个系统范围的安装。
在开发Python应用程序时,可能需要使用pip实用程序安装一个或多个库(例如,pip3 install somelib)。此外,一个应用程序(让我们称之为App1)可能需要特定版本的库——比如somelib 1.0。同时,另一个Python应用程序(例如App2)可能需要相同库的较新版本,比如somelib 2.0。因此,通过安装新版本,App1的功能可能会因为同一库的两个不同版本之间冲突而受到影响。
可以通过在同一台机器上提供两个隔离的Python环境来避免这种冲突。这些被称为虚拟环境。虚拟环境是一个单独的目录结构,包含隔离的安装,其中包含Python解释器、标准库和其他模块的本地副本。
下图显示了使用虚拟环境的优势。使用全局Python安装,创建多个虚拟环境,每个环境具有同一库的不同版本,从而避免冲突。
使用venv在Python中创建虚拟环境
标准Python发行版中的venv模块支持此功能。使用以下命令创建一个新的虚拟环境。
C:\Users\Acer>md\pythonapp C:\Users\Acer>cd\pythonapp C:\pythonapp>python -m venv myvenv
这里,myvenv是将创建一个新的Python虚拟环境的文件夹,显示以下目录结构:
Directory of C:\pythonapp\myvenv 22-02-2023 09:53 <DIR> . 22-02-2023 09:53 <DIR> .. 22-02-2023 09:53 <DIR> Include 22-02-2023 09:53 <DIR> Lib 22-02-2023 09:53 77 pyvenv.cfg 22-02-2023 09:53 <DIR> Scripts
激活和停用虚拟环境的实用程序以及Python解释器的本地副本将放在scripts文件夹中。
Directory of C:\pythonapp\myvenv\scripts 22-02-2023 09:53 <DIR> . 22-02-2023 09:53 <DIR> .. 22-02-2023 09:53 2,063 activate 22-02-2023 09:53 992 activate.bat 22-02-2023 09:53 19,611 Activate.ps1 22-02-2023 09:53 393 deactivate.bat 22-02-2023 09:53 106,349 pip.exe 22-02-2023 09:53 106,349 pip3.10.exe 22-02-2023 09:53 106,349 pip3.exe 22-02-2023 09:53 242,408 python.exe 22-02-2023 09:53 232,688 pythonw.exe
激活虚拟环境
要启用此新的虚拟环境,请在Scripts文件夹中执行activate.bat。
C:\pythonapp>myvenv\scripts\activate (myvenv) C:\pythonapp>
注意括号中的虚拟环境名称。Scripts文件夹包含Python解释器的本地副本。您可以在此虚拟环境中启动Python会话。
检查Python是否在虚拟环境中运行?
要确认此Python会话是否在虚拟环境中,请检查sys.path。
(myvenv) C:\pythonapp>python Python 3.10.1 (tags/v3.10.1:2cd268a, Dec 6 2021, 19:10:37) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path ['', 'C:\\Python310\\python310.zip', 'C:\\Python310\\DLLs', 'C:\\Python310\\lib', 'C:\\Python310', 'C:\\pythonapp\\myvenv', 'C:\\pythonapp\\myvenv\\lib\\site-packages'] >>>
此虚拟环境的scripts文件夹还包含pip实用程序。如果您从PyPI安装包,该包将仅在当前虚拟环境中有效。
停用虚拟环境
要停用此环境,请运行deactivate.bat。