【Python】Python / PyCharm 虚拟环境详搭建与使用详解

【Python】Python / PyCharm 虚拟环境详搭建与使用详解

文章目录

什么是虚拟环境

虚拟环境(Virtual Environment) 是Python中用于隔离项目依赖的工具,其允许我们在同一台机器上为不同的Python项目创建独立的环境,每个环境可以有自己独立的Python版本和第三方库。


虚拟环境的作用

  1. 依赖隔离:不同项目可以使用不同版本的库而不会冲突
  2. 项目独立性:确保项目所需的依赖被明确记录且不会影响系统全局环境
  3. 便于协作:通过requirements文件可以轻松分享项目环境配置
  4. 避免权限问题:不需要系统管理员权限安装包
  5. 干净卸载:删除虚拟环境即可完全移除所有相关依赖

如何搭建虚拟环境

方法1: 使用Python内置venv模块

# 创建虚拟环境 python -m venv myenv # 激活虚拟环境# Windows: myenv\Scripts\activate # Linux/Mac:source myenv/bin/activate # 停用虚拟环境 deactivate 
在这里插入图片描述

方法2: 使用virtualenv

# 安装virtualenv pip install virtualenv # 创建虚拟环境 virtualenv myenv # 激活/停用同上

方法3: 使用conda(适用于Anaconda/Miniconda用户)

# 创建虚拟环境 conda create --name myenv python=3.8# 激活 conda activate myenv # 停用 conda deactivate 

在PyCharm中使用虚拟环境

创建新项目时:

  • 新建项目时选择"New Environment using Virtualenv"
  • 指定Python解释器位置和虚拟环境位置
在这里插入图片描述

为已有项目添加虚拟环境:

  • File > Settings > Project: [项目名] > Python Interpreter
  • 点击齿轮图标 > Add
  • 选择"Virtualenv Environment"并配置
在这里插入图片描述


在这里插入图片描述

使用已有虚拟环境:

  • 在Python Interpreter设置中,选择"Existing environment"
  • 指向虚拟环境中的Python解释器(如myenv/Scripts/python.exe)

也可以先通过 python -m venv myenv 命令进行创建虚拟环境,随后在pycharm中使用该虚拟环境

在这里插入图片描述

虚拟环境搭建成功

在pycharm上成功使用虚拟环境时,控制台输入左侧会出现虚拟环境的名称:

在这里插入图片描述

报错:禁止在系统上运行脚本

</font face=“”>

当在windows下执行虚拟环境的脚本命令时,可能会报错:

无法加载文件 D:\Coder\Warehouse\python\algorithm_problem\myenv\Scripts\Activate.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中
的 about_Execution_Policies。

在这里插入图片描述


为什么会出现这个错误?

原因:PowerShell 执行策略限制

  • 当我们运行 .\myenv\Scripts\Activate.ps1 激活虚拟环境时,PowerShell 会阻止执行 .ps1 脚本,因为默认的执行策略是 Restricted(禁止运行任何脚本)。
  • 这是 Windows 的安全机制,防止恶意脚本自动运行。

我们可以在windows下执行 get-ExecutionPolicy 命令显示当前的策略,可以观察到当前策略是默认策略 Restricted

在这里插入图片描述

解决方法

方法 1:临时允许脚本运行(推荐)

# 仅对当前会话生效,关闭 PowerShell 后恢复默认策略Set-ExecutionPolicy-Scope Process-ExecutionPolicy Bypass 
  • 优点:不影响系统全局策略,仅当前终端有效。

方法 2:永久修改执行策略

# 全局修改执行策略(需要管理员权限)Set-ExecutionPolicy RemoteSigned -Force 
  • 适用场景:如果需要经常运行 .ps1 脚本(如 Python 虚拟环境激活)。

方法 3:改用 CMD 激活虚拟环境

如果不想修改 PowerShell 策略,可以直接用 CMD

D:\Coder\Warehouse\python\algorithm_problem\myenv\Scripts\activate.bat 
  • CMD 没有脚本执行限制,不会报错。

管理虚拟环境中的包

# 安装包 pip install package_name # 生成requirements文件(记录所有依赖) pip freeze > requirements.txt # 根据requirements文件安装依赖 pip install -r requirements.txt 

虚拟环境是Python开发中的最佳实践,能有效解决依赖冲突问题,一般情况下,出于依赖隔离与项目独立性的考虑,建议为每个项目单独创建虚拟环境。

Read more

B树与B+树:从原理到实现的深度解析

第1章:引言:为什么需要多路平衡查找树? 1.1 计算机存储层次结构带来的挑战 在现代计算机系统中,存储层次结构从寄存器、高速缓存、主内存到磁盘,访问速度差异巨大。以典型的现代计算机为例: * CPU寄存器:访问延迟约0.3纳秒 * L1高速缓存:访问延迟约0.9纳秒 * L2高速缓存:访问延迟约2.8纳秒 * 主内存:访问延迟约12纳秒 * 固态硬盘:访问延迟约25微秒(25,000纳秒) * 机械硬盘:访问延迟约10毫秒(10,000,000纳秒) 这种访问延迟的指数级差异催生了局部性原理的优化思想。然而,当数据规模达到千万甚至亿级时,传统的二叉树结构面临严重挑战: text 二叉查找树的最坏情况: [1] \ [2] \ [3] \ ... \ [1000000] 1.2 二叉树在外部存储中的局限性 考虑一个包含1亿条记录的数据库,假设每个记录需要100字节存储空间。如果使用二叉查找树: * 平均树高约为log₂(100,

By Ne0inhk
【算法通关指南:数据结构与算法篇 】二叉树相关算法题:1.新二叉树 2.二叉树的遍历

【算法通关指南:数据结构与算法篇 】二叉树相关算法题:1.新二叉树 2.二叉树的遍历

🔥小龙报:个人主页 🎬作者简介:C++研发,嵌入式,机器人方向学习者 ❄️个人专栏:《算法通关指南》 ✨ 永远相信美好的事情即将发生 文章目录 * 前言 * 二、新二叉树 * 2.1题目 * 2.2 算法原理 * 2.3代码 * 三、 二叉树的遍历 * 3.1题目 * 3.2 算法原理 * 3.3代码 * 总结与每日励志 前言 本专栏聚焦算法题实战,系统讲解算法模块:以《c++编程》,《数据结构和算法》《基础算法》《算法实战》 等几个板块以题带点,讲解思路与代码实现,帮助大家快速提升代码能力ps:本章节题目分两部分,比较基础笔者只附上代码供大家参考,其他的笔者会附上自己的思考和讲解,希望和大家一起努力见证自己的算法成长 二、新二叉树 2.

By Ne0inhk
【强化学习】区分理解: 时序差分(TD)、蒙特卡洛(MC)、动态规划(DP)

【强化学习】区分理解: 时序差分(TD)、蒙特卡洛(MC)、动态规划(DP)

📢本篇文章是博主强化学习(RL)领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在👉强化学习专栏:        【强化学习】- 【强化学习进阶】(3)---《 区分理解: 时序差分(TD)、蒙特卡洛(MC)、动态规划(DP)》 区分理解: 时序差分(TD)、蒙特卡洛(MC)、动态规划(DP) 目录 一、前言 二、时序差分(Temporal-Difference,TD) 1. 背景 2. TD方法的核心思想 3. TD与其他方法的对比 4. 常见的TD算法 三、 蒙特卡洛(Monte Carlo, MC)

By Ne0inhk
Flutter 三方库 matrix 鸿蒙终端底层复杂超维数学算力适配突破:无缝植入极限级张量系统与密集线性代数矩阵运算推演算法,解锁端侧图形处理边界-适配鸿蒙 HarmonyOS ohos

Flutter 三方库 matrix 鸿蒙终端底层复杂超维数学算力适配突破:无缝植入极限级张量系统与密集线性代数矩阵运算推演算法,解锁端侧图形处理边界-适配鸿蒙 HarmonyOS ohos

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 matrix 鸿蒙终端底层复杂超维数学算力适配突破:无缝植入极限级张量系统与密集线性代数矩阵运算推演算法,全面解锁端侧图形视觉处理边界并拔高数据分析算力上限 在图形学渲染、物理引擎模拟、复杂地理坐标转换以及端侧小型机器学习框架中,底层的矩阵运算(Matrix Operations)是决速步骤。matrix 库是一个专注于高性能线性代数计算的 Dart 库。本文将详解该库在 OpenHarmony 环境下的适配与实战应用。 封面 前言 什么是 matrix?它为 Dart 提供了一套类似于 NumPy 的多维数组运算接口。在鸿蒙操作系统这种强调极致流畅度和复杂视觉动效的系统中,利用高效的矩阵算法可以显著提升自定义 Canvas 绘图或实时传器数据处理的性能,避免因 Dart 层的低效循环导致的 UI 掉帧。 一、原理解析 1.1 基础概念 matrix 库核心基于

By Ne0inhk