【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

【 C/C++ 算法】入门动态规划-----一维动态规划基础(以练代学式)

【 C/C++ 算法】入门动态规划-----一维动态规划基础(以练代学式)

每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 绪论 : 本章是动态规划算法的基础入门篇,我将通过三道简单题 + 一道中等难度的一维动态规划题来带你对动态规划有个初认识,并基本了解动态规划的最基本常见的写法,只有将基本写法了解了,对后续的难的题目自然也不会毫无头绪,后续还将持续更新更多相关的动规算法,敬请期待~🙃 ———————— 早关注不迷路,话不多说安全带系好,发车啦(建议电脑观看)。 👻动态规划🌥️ 这里通过大量练习得出下面动态规划做题步骤 简单的说动态规划理解成:某种状态的公式 + 提前求出来值的容器 求出当前位置的值然后放到容器中后后续使用 因为最开始的值一般是会看见的所以就能有初始值,从而启动动态规划 从上中可以主要提炼出: * 状态 * 容器的重要性 * 公式,可以换种说法:状态转移方程 这样严格😈的说:动态规划 = 状态定义 + 状态转移方程 + 初始条件 + 状态存储(容器) 下述步骤是通过写完下述四道题后的总结,所以同样需要道友🗡️大量的练习沉淀最终就能对动态规划的题目

By Ne0inhk
工业相机高速回调 + 异步处理线程:海康 C++ 实战代码深度解析

工业相机高速回调 + 异步处理线程:海康 C++ 实战代码深度解析

工业相机高速回调 + 异步处理线程:海康 C++ 实战代码深度解析 导读:在锂电池极片飞拍、半导体晶圆检测等高速视觉场景中,“相机能跑 90fps,一存图就掉到 20fps”是许多工程师的噩梦。C++ 虽然性能强劲,但若架构设计不当,同样难逃丢帧、内存泄漏的厄运。本文将基于生产者 - 消费者模型 + 环形缓冲队列的核心思想,为你打造一套C++ 版本的高速图像存储方案,并附带海康威视(Hikvision)MVS SDK 的实战代码,助你轻松扛住 4K@60fps 连续写入! 一、痛点直击:为什么你的高速相机总丢帧? 在工业视觉系统中,图像数据流如同洪流: * 带宽巨大:4K@60fps RAW 图像带宽高达 1.8GB/s; * I/O 瓶颈:普通

By Ne0inhk
安装 Microsoft Visual C++ Build Tools

安装 Microsoft Visual C++ Build Tools

Microsoft Visual C++ Build Tools下载安装 安装Microsoft Visual C++ Build Tools是为了在windows系统上编译和运行需要C++支持的程序或库(例如某些Python包,Node.js模块等)。 1.下载 打开浏览器,访问 Visual Studio Build Tools下载页面。 在页面上找到“下载”按钮,点击下载 Build Tools for Visual Studio 的安装程序(vs_BuildTools.exe)。 2. 安装 双击下载好的软件(vs_BuildTools.exe)。 点击继续。 等待下载安装。 在安装Visual Studio Build Tools的时候,选择“C++生成工具”

By Ne0inhk

C++ 函数模板

函数模板(Function Template) 是C++中实现泛型编程的核心工具,它允许编写与类型无关的通用代码。通过函数模板,你可以定义一个函数蓝图,编译器会根据实际使用的类型自动生成具体的函数代码。 基本概念 1. 模板定义 cpp // 定义一个函数模板 template <typename T> // T 是类型参数 T max(T a, T b) { return (a > b) ? a : b; } // 或者使用 class 关键字(和 typename 等价) template <class T> T min(T a, T b)

By Ne0inhk