【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

【Linux】线程池(二)C++ 手写线程池全流程:从核心设计到线程安全、死锁深度解析

【Linux】线程池(二)C++ 手写线程池全流程:从核心设计到线程安全、死锁深度解析

文章目录 * 实现线程池 * ThreadPool类设计 * 构造函数 * Start接口 * 线程池接入日志 * 初步实现源码及效果图 * 总结代码执行逻辑 * 实现回调函数Routine * enqueue接口实现 * 线程池退出stop接口优化 * 线程池源码 * 线程安全和重入问题 * 结论 * 死锁 * 死锁四个必要条件 * 避免死锁 * STL、智能指针和线程安全 实现线程池 我们之前已经接触了进程池,其实线程池和进程池核心思路差不多,对于线程池来说,会有一个任务队列和若干线程,用户往任务队列里添加任务,若干线程在任务队列里拿任务并完成。 ThreadPool类设计 构造函数 对于线程来说,启动线程池分为两步: 1.先创建线程本身(Thread类对象)2.再启动线程(调用Thread的start接口) 所以在构造函数我们要先创建线程本身(thread t(回调函数,线程名)),创建线程需要传递回调函数(假设是hello)和线程名,但这里有一个问题,一般来说传递的

By Ne0inhk
2026年3月GESP真题及题解(C++一级):数字替换

2026年3月GESP真题及题解(C++一级):数字替换

2026年3月GESP真题及题解(C++一级):数字替换 题目描述 Alice 不喜欢 4,喜欢 8,她想把 4 全换成 8,若无 4 则不修改。 输入格式 输入一行,一个整数 A,表示替换前的数。 输出格式 输出一行,包含一个整数 B,表示替换后的数。 样例 样例 1: 输入: 8459045 输出: 8859085 样例 2: 输入: 123 输出: 123 数据范围 * 0 ≤ A ≤ 10 9 0 \leq A \leq 1

By Ne0inhk
基于飞算 JavaAI 高效开发电商系统核心功能模块实战指南

基于飞算 JavaAI 高效开发电商系统核心功能模块实战指南

基于飞算 JavaAI 高效开发电商系统核心功能模块实战指南 在电商系统开发领域,效率与稳定性始终是开发者追求的核心目标。传统 Java 开发模式下,电商系统的商品管理、订单处理、支付集成等核心模块往往需要大量重复编码、复杂的异常处理和繁琐的性能优化工作。飞算 JavaAI 作为新一代智能开发工具,通过 AI 驱动的代码生成、自动化测试与性能优化能力,可将电商核心模块的开发效率提升 60% 以上。本文将以主流电商系统的三大核心模块为例,详细讲解如何利用飞算 JavaAI 实现从需求定义到上线部署的全流程高效开发。 一、飞算 JavaAI 电商开发环境准备 1.1 开发环境配置 打开Idea,戳进插件市场(快捷键:Ctrl+Alt+S),搜索‘CalEx-JavaAI’或者’飞算’,安装完成后重启,并登录飞算。 1.2 核心技术栈说明 技术组件版本飞算 JavaAI

By Ne0inhk
毕业设计--15614基于Java的餐馆管理系统的设计与实现(案例分析)-附源码

毕业设计--15614基于Java的餐馆管理系统的设计与实现(案例分析)-附源码

摘  要 以满足现代餐饮业日益复杂的管理需求,本研究设计并实现一个基于Java的餐馆管理系统。采用Spring Boot框架和MySQL数据库,系统主要分为顾客用户、管理员以及员工用户三大模块。对于顾客用户,系统提供了包括注册、登录、浏览餐厅资讯与菜品信息、商城购物、查看餐厅信息、账户管理及个人中心等功能;个人中心内还集成了预约信息、订单配送状态跟踪、收藏夹和评论管理等特色服务。管理员则通过后台进行全局性的操作,如销售数据统计分析、系统用户管理、餐厅信息及其评论的维护、预约审核、轮播图设置、公告信息发布、新闻资讯更新以及全面的商城管理。员工用户功能相对聚焦,重点在于登录验证后对其负责餐厅的信息查看、预约审核以及特定范围内的商城管理任务执行。整个系统的设计与实现充分考虑了用户体验、数据安全性和操作便捷性,力求为餐饮行业提供一套高效、实用的信息化解决方案。 关键词:餐馆管理系统;Spring Boot;Java;MySQL ABSTRACT To meet the increasingly complex management needs of the modern

By Ne0inhk