【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

鸿蒙金融理财全栈项目——生态合作、用户运营、数据变现

鸿蒙金融理财全栈项目——生态合作、用户运营、数据变现

《鸿蒙APP开发从入门到精通》第19篇:鸿蒙金融理财全栈项目——生态合作、用户运营、数据变现 📊🌍💰 内容承接与核心价值 这是《鸿蒙APP开发从入门到精通》的第19篇——生态合作、用户运营、数据变现篇,100%承接第18篇的风险控制、合规审计、产品创新架构,并基于金融场景的生态合作、用户运营、数据变现要求,设计并实现鸿蒙金融理财全栈项目的生态合作、用户运营、数据变现功能。 学习目标: * 掌握鸿蒙金融理财项目的生态合作设计与实现; * 实现金融机构合作、支付渠道合作、数据分析合作; * 理解用户运营在金融场景的核心设计与实现; * 实现用户增长、用户留存、用户转化; * 掌握数据变现在金融场景的设计与实现; * 实现数据服务、数据产品、数据变现; * 优化金融理财项目的用户体验(生态合作、用户运营、数据变现)。 学习重点: * 鸿蒙金融理财项目的生态合作设计原则; * 用户运营在金融场景的应用; * 数据变现在金融场景的设计要点。 一、 生态合作基础 🎯 1.1 生态合作定义 生态合作是指金融理财项目与其他金融机构、

By Ne0inhk

Flutter 三方库 at_server_status 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、透明、实时的 @protocol 去中心化身份服务器状态感知与鉴权监控引擎

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 at_server_status 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、透明、实时的 @protocol 去中心化身份服务器状态感知与鉴权监控引擎 在鸿蒙(OpenHarmony)系统的隐私保护应用、去中心化身份管理工具(基于 @protocol 协议)或需要实时监控全球分布式节点健康状况的场景中,如何判定一个 @sign(电子签名标识)背后的 Root 服务器或 Secondary 服务器是否在线、配置是否由于由于由于由于已就绪?at_server_status 为开发者提供了一套工业级的、基于协议栈的状态审计与自检方案。本文将深入实战其在鸿蒙 Web3 身份安全底座中的应用。 前言 什么是 atServer Status?它是 @protocol(一种旨在让用户完全掌控数据的去中心化协议)官方生态的核心组件。

By Ne0inhk
HarmonyOS6 组件复用 reuseId 官方使用文档

HarmonyOS6 组件复用 reuseId 官方使用文档

文章目录 * 一、核心 API 定义 * 1. reuseId 通用属性 * 2. 核心装饰器 * 3. 组件复用生命周期 * 二、核心使用规则 * 三、完整可运行示例代码 * 四、示例执行流程与日志说明 * 1. 页面初始化 * 2. 点击「显示/隐藏组件」 * 3. 点击「切换复用ID」 * 4. 再次切换回原ID * 总结 本文档基于 HarmonyOS 官方 reuseId 通用属性规范编写,配套可直接运行、无语法报错的完整示例,适用于 API 12+ 稳定版 DevEco Studio,严格遵循 ArkTS 语法检查规则。 reuseId 是 HarmonyOS ArkUI

By Ne0inhk
Flutter 三方库 http_client_interceptor 的鸿蒙化适配指南 - 实现原生 HttpClient 的全量请求拦截、支持端侧动态 Headers 注入与网络流量审计实战

Flutter 三方库 http_client_interceptor 的鸿蒙化适配指南 - 实现原生 HttpClient 的全量请求拦截、支持端侧动态 Headers 注入与网络流量审计实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 http_client_interceptor 的鸿蒙化适配指南 - 实现原生 HttpClient 的全量请求拦截、支持端侧动态 Headers 注入与网络流量审计实战 前言 在进行 Flutter for OpenHarmony 开发时,虽然我们常使用 dio 等高阶库,但仍有大量底层插件或遗留系统直接使用 Dart 原生的 HttpClient。如何在中途“截获”这些原生请求,以便统一添加鉴权 Token、日志审计或处理特定区域的网关重定向?http_client_interceptor 是一款专为原生 IO 库设计的拦截器插件。本文将探讨如何在鸿蒙端构建极致透明的网络治理层。 一、原直观解析 / 概念介绍 1.1 基础原理

By Ne0inhk