安装Python

由于RAG项目中所需要的Python版本必须高于3.8,经过筛选,最终选择了3.10.11这个版本

py --version
Python 3.10.11

安装过程略过,但对于几个基础的命令作个笔记记录

  • where python

找到python启动器的位置

D:\>where python
C:\Users\xxxxx\AppData\Local\Programs\Python\Python310\python.exe
  • py -0

py -0 这个命令可以在有多个版本的Python的情况下,查看Python启动器默认执行的是哪个版本(带 * 标记的这个就是默认版本),多个版本的情况下,如果想改变Python启动器的默认版本,有两种方式:1、设置环境变量 PY_PYTHON=3.10 ;2、改配置置文件 %LOCALAPPDATA%\py.ini

D:\>py -0
Installed Pythons found by py Launcher for Windows-3.10-64 *

Python启动器的默认执行版本与环境变量PATH中的Phthon版本设定问题:

两者并不是同步的,因为Python启动器用的python版本并不依赖于PATH环境变量。

  • pip命令

pip命令最常见的用法就是安装依赖工具包

D:\PythonWorkspace\wow-rag\rag-venv>pip install fastapiLooking in indexes: https://mirrors.aliyun.com/pypi/simple/
Requirement already satisfied: fastapi in d:\pythonworkspace\wow-rag\rag-venv\lib\site-packages (0.116.1)
Requirement already satisfied: starlette<0.48.0,>=0.40.0 in d:\pythonworkspace\wow-rag\rag-venv\lib\site-packages (from fastapi) (0.47.1)
Requirement already satisfied: typing-extensions>=4.8.0 in d:\pythonworkspace\wow-rag\rag-venv\lib\site-packages (from fastapi) (4.14.1)
Requirement already satisfied: pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4 in d:\pythonworkspace\wow-rag\rag-venv\lib\site-packages (from fastapi) (2.11.7)
Requirement already satisfied: typing-inspection>=0.4.0 in d:\pythonworkspace\wow-rag\rag-venv\lib\site-packages (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi) (0.4.1)
Requirement already satisfied: annotated-types>=0.6.0 in d:\pythonworkspace\wow-rag\rag-venv\lib\site-packages (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi) (0.7.0)
Requirement already satisfied: pydantic-core==2.33.2 in d:\pythonworkspace\wow-rag\rag-venv\lib\site-packages (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi) (2.33.2)
Requirement already satisfied: anyio<5,>=3.6.2 in d:\pythonworkspace\wow-rag\rag-venv\lib\site-packages (from starlette<0.48.0,>=0.40.0->fastapi) (4.9.0)
Requirement already satisfied: sniffio>=1.1 in d:\pythonworkspace\wow-rag\rag-venv\lib\site-packages (from anyio<5,>=3.6.2->starlette<0.48.0,>=0.40.0->fastapi) (1.3.1)
Requirement already satisfied: idna>=2.8 in d:\pythonworkspace\wow-rag\rag-venv\lib\site-packages (from anyio<5,>=3.6.2->starlette<0.48.0,>=0.40.0->fastapi) (3.10)
Requirement already satisfied: exceptiongroup>=1.0.2 in d:\pythonworkspace\wow-rag\rag-venv\lib\site-packages (from anyio<5,>=3.6.2->starlette<0.48.0,>=0.40.0->fastapi) (1.3.0)
Note: you may need to restart the kernel to use updated packages.

    有多个版本的Python时,可以用py命令带上版本号来对指定的版本安装依赖包,例:

    py -3.10 -m pip install langchain

    安装 langchain 包到 Python 3.10 的环境中

    Python的虚拟环境

    虚拟环境是一个 独立的 Python 环境目录(包含解释器、pip、安装包等),本质是一个文件夹,在实际项目中,对每个项目单独创建一个虚拟环境是有重要意义的,这可以让每个项目所依赖的包与其他项目的依赖包进行隔离,避免工具包的版本冲突导致的各种问题。

    虚拟环境通常在项目的根目录下创建,用命令行创建一个虚拟环境的示例(rag-env是虚拟环境的目录):

    py -3.10 -m venv rag-env

    虚拟环境的激活:在 rag-env\Scripts 目录下执行active.bat (必须CMD窗口执行),关闭就是执行 deactive.bat

    重要:安装项目依赖的工具包之前激活该项目的虚拟环境,避免工具包未正确安装导致运行代码的时候出现报错:

    ModuleNotFoundError: No module named 'pandas'

    一旦你激活了某个虚拟环境,后续在该命令行中执行的所有 Python 相关命令(如 python, pip, conda, pytest 等),都是作用在这个被激活的虚拟环境中的。

    一个命令行窗口只能管理一个虚拟环境的状态(激活/关闭),命令行窗口关闭后,激活的虚拟环境会自动关闭。想要管理多个虚拟环境的状态,可以开多个命令行。

    注:使用PyCharm创建一个项目可以指定的策略来为项目创建一个新的虚拟环境,且在PyCharm中运行Python程序的时候不需要手动激活虚拟环境,PyCharm会帮用户做这件事。

    Jupyter与Jupyter Book

    Jupyter适用于做Python的小实验,比用PyCharm更简洁方便。使用Jupyter需要的前提条件是:

    1、安装Python

    2、在项目的根目录下创建该项目的虚拟环境,例:py -3.10 -m venv rag-venv

    3、已激活虚拟环境(命令行前缀显示虚拟环境的目录名,如: rag-env)

    (rag-venv) C:\Users\YourName\YourProject>

    安装Jupyter的步骤

    1、(建议)使用阿里的镜像源,提高下载速度

    pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

    2、安装Jupyter

    pip install notebook

    3、确认已装好

    jupyter --version

    4、启动Jupyter(在虚拟环境中执行)

    jupyter notebook

    浏览器中打开 http://localhost:8888,这是 Jupyter 的控制面板,你可以:

    • 新建一个 Notebook(点击右上角 New → 选择 Python 3.10 环境)

    • 编写代码,运行、保存等

    5、退出 Jupyter 后,如果不再工作,可关闭虚拟环境(执行 \Scripts目录下的 deactive.bat)

    在 Jupyter Notebook 中,界面是由一个个可以运行代码或写文字的“格子”(单元格,ode cell)组成的。每个格子可以:

    • 输入一段 Python 代码

    • 按下 Shift + Enter 运行这段代码

    • 结果会显示在格子下方

    • 你可以随时插入新格子、删除、复制、重新运行等

    你可以在Jupyter Notebook中写python 代码、调试、展示结果等操作。比命令行好用,比PyCharm方便。

    每个代码格子都要单独运行,才能执行其中的代码,除非你选择了批量执行(比如,菜单栏中执行 Restart & Run All,这会重骑Python的环境并按顺序运行所有的代码格子)。

    Pycharm

    与IDEA同为JetBrains下的产品,因此,很多设计特点可以参照IDEA来对标。

    与IDEA一样,免费使用的版本为社区版(Community),本次安装的版本为 PyCharm Community 2023.3.5,安装过程略。

    首次启动时的几个设置:

    • Import Settings

      • 选择 Do not import settings(针对首次使用者)。

    • UI 界面主题选择

      • 推荐选择 Darcula(深色) 或 Light(浅色),可随时更改。

    • 插件推荐(可跳过)

    项目与虚拟环境

    与IDEA中对Java的版本设置相似,PyCharm中也可以设置全局Python的版本,但是不建议设置全局共享的Python解释器,因为这样很容易造成依赖冲突

    因此,对每个项目构建一个该项目的虚拟环境是实际项目中规范的做法。

    新建项目的示例:

    • File→New Project:Interpreter Type 选 Custom enviroment 

    这样就可以在创建项目目录的同时,在项目的目录下构建该项目的虚拟环境。

    在虚拟环境的目录里,可以看到有一个python.exe,在 项目文件夹\虚拟环境文件夹\Scripts\  这个目录下,这是系统安装的Python(多版本的话指向的是默认版本)的一个副本,副本的意思是基于系统安装的Python复制必要的解释器文件,并创建一个独立的依赖空间(包的安装路径、sys.path 等都被重定向到了虚拟环境下的 Lib/Scripts/ 目录)。这样的话,在这个虚拟环境中装包、运行脚本,不会影响或依赖全局安装

    这里可以类比 Docker来理解:

    虚拟环境机制Docker 概念类比
    python.exe + Lib镜像的运行时
    虚拟环境目录结构容器文件系统
    Scripts/activate启动入口(类似 entrypoint)
    pip install 的包容器内的依赖

    用Conda构建虚拟环境

    Conda 是一个跨平台的包管理 + 环境管理工具,类似于 pip + virtualenv 的合体,而且不限于 Python 包。

    Conda的能力作用
    📦 包管理安装、卸载、更新第三方库(不只是 Python 库)
    🌍 环境管理创建、切换、隔离多个 Python 环境(或其他语言环境)
    🏗️ Python 版本管理每个环境可以使用不同版本的 Python
    💼 支持非 Python 包可安装 C/C++ 编译的科学计算包(如 numpy、pandas、opencv 等)而不需你配置编译器

    与前面的创建虚拟环境的方式相比,使用Conda最大的优势是支持非Python包的安装与管理

    Conda有两个版本,Anaconda和Miniconda,以下是这两个版本的对比

    特性AnacondaMiniconda
    📦 包含内容Python + Conda + 300+ 常用数据科学包 + Navigator GUI仅 Python + Conda + 少量基础依赖(轻量命令行版)
    🛠 安装体积≈ 4 GB,安装后环境庞大约 480 MB,下载快,安装轻便
    🧰 适用人群希望开箱即用,零配置即可使用数据科学工具想控制包安装,节省空间,只安装所需包
    🛠 包管理方式GUI + CLI(conda install)纯命令行(conda install)
    📡 非 Python 包支持支持 C/C++ 库、R 等同 Anaconda(都使用 Conda 包管理)
    ⚙️ 包更新频率默认 conda 通道中包更新较慢轻量,建议通过 conda-forge 或 mamba 加速

    这里选用Anaconda,因为这对初学者更友好一点。

    Anaconda的对虚拟环境的创建有两种方式:

    方式命令环境位置适用场景
    方式 A:命名环境法(命名环境拨法)conda create -n myenv python=3.10➤ 一个统一的目录,如:Anaconda 的目录:…/anaconda3/envs/myenv/✅ 推荐用于多个项目共享某个环境,统一管理
    方式 B:路径方式(项目内环境)conda create -p ./venv python=3.10➤ 在项目的目录下创建,如 ./venv/✅ 推荐用于项目内绑定,方便迁移、开源

    两种方式的区别可简单理解为:虚拟环境的安装位置一个在统一的目录里(比如Anaconda下的目录),另一个在项目的目录里,使用PyCharm新建项目的时候分别在不同的虚拟环境目录下选择python解释器(后面的详细步骤也会提到),核心区别的详细对比如下:

    特性命名环境(-n myenv)路径环境(-p ./venv)
    📁 环境放在哪里系统集中目录(如 anaconda3/envs/项目目录下(如 ./venv/
    🔄 是否推荐复用✅ 支持复用(多个项目可用)❌ 项目独占,不复用
    🧳 可迁移性❌ 环境与项目分离(不便迁移)✅ 项目打包带走环境更方便
    🛠 开发效率快速使用已有环境,无需重复安装需要每次创建、安装依赖
    🤝 团队协作不易同步环境,需导出 .yml配合环境文件更清晰可控
    📦 PyCharm 支持自动识别,配置简单需手动指向解释器路径

    使用Anaconda创建项目的步骤描述

    1、创建项目目录

    # 创建项目目录
    mkdir MyProject && cd MyProject# 创建目录结构
    mkdir app tests
    echo > README.md
    echo > app/main.py
    echo > app/__init__.py
    echo > tests/test_main.py

    2、创建Conda虚拟环境(这里用“命名环境法”)

    # 创建环境(可自定义名称和版本)
    conda create -n myproject_env python=3.10# 激活环境
    conda activate myproject_env# 安装开发常用包
    conda install pytest# 如果用 pip 也可以混合使用
    pip install requests

    3、在 PyCharm 中打开项目并配置解释器

    • 打开 PyCharm → Open → 选择你的项目目录(如 D:\Projects\MyProject

    • 菜单栏:File → Settings → Project → Python Interpreter

    • 添加解释器:选择

      • Conda Environment → Existing Environment

      • 指向:

        ...\anaconda3\envs\myproject_env\python.exe

    4、设置项目入口

    • 右键 main.pyMark as Entry Point(或者设置运行配置)

    • 或在顶部菜单选择:

      • Run → Edit Configurations → + → Python

      • Script path 选 app/main.py

      • Name 起个名字 Run App

      • Interpreter 选你刚配置的 Conda 解释器

      • Apply → OK

    5、设置 app/ 为源码目录(非常重要)

    右键 app/Mark Directory as → Sources Root
    这样导入 from utils import xxx 就不会报错。

    6.、导出 environment.yml(可选,但推荐)

    将当前环境依赖导出成配置文件:

    conda env export --from-history > environment.yml

    这样你可以:

    • 保留环境快照

    • 迁移到新机器时 conda env create -f environment.yml 即可重建

    最终实现的项目目录结构如下:

    MyProject/
    ├── .idea/              ← PyCharm 配置(自动生成)
    ├── app/                ← 源代码
    ├── tests/              ← 测试
    ├── README.md
    ├── environment.yml
    

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
    如若转载,请注明出处:http://www.pswp.cn/news/916558.shtml
    繁体地址,请注明出处:http://hk.pswp.cn/news/916558.shtml
    英文地址,请注明出处:http://en.pswp.cn/news/916558.shtml

    如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    Flink CEP 动态模板与规则动态修改实践完全手册

    1. Flink CEP:从静态规则到动态江湖 Flink 的复杂事件处理(CEP)库就像一个武功高强的侠客,能从数据流中精准捕获特定模式,堪称流处理界的“降龙十八掌”。但问题来了:传统 CEP 规则通常是写死在代码里的,就像刻在石碑上的武功秘籍,改起来费劲不说,还得重启应用,简直…

    vue3.2 + echarts5.6 + ant-design-vue 3.x 实现自定义 echarts 图例

    文章目录概要技术细节效果概要 需求需要实现图例移入显示描述说明 故实现自定义图例 技术细节 <template><div class"custom-legend"><divv-for"item in legends":key"item.name"class"legend-item":class"{ i…

    【2025年7月25日】TrollStore巨魔商店恢复在线安装

    就在今日7月25日&#xff0c;TrollStore的在线安装功能再次变得可用&#xff0c;这对于许多iPhone用户来说无疑是个喜讯。在经历了近三个月的中断后&#xff0c;巨魔商店的企业证书意外的到来了&#xff0c;使得用户能够重新采用在线安装的方式&#xff01; 在线安装地址在文…

    【05】C#入门到精通——C# 面向对象、类、静态变量static、类与类之间的调用

    文章目录1 引入例子2 创建类2.1 类的访问属性2.2 英雄 特点类2.3 英雄信息打印3 静态变量static4 类 调用 类4.1 非静态 成员函数4.2 静态 成员函数1 引入例子 比如游戏中 描述英雄的角色&#xff0c; 我们可以像下面这样&#xff0c;给每一个英雄特点及拥有技能分别定义变量…

    单片机的硬件结构

    单片机的硬件结构 一、课程导入 在上一节课《认识单片机》中&#xff0c;我们知道单片机就像一个超级迷你的工厂&#xff0c;有着类似工厂的各个组成部分。而这个 “迷你工厂” 能正常运转&#xff0c;离不开其内部严谨的硬件结构。就像一座大厦&#xff0c;只有基础结构稳固且…

    multiprocessing模块使用方法(二)

    spawn_main是Python multiprocessing模块的核心内部函数&#xff0c;用于实现spawn启动方法的子进程初始化。以下结合代码Demo详细说明其使用方法和推荐场景。一、spawn_main的功能与定位核心作用&#xff1a; 在spawn模式下启动子进程&#xff0c;负责进程间通信管道的建立和资…

    编程与数学 03-002 计算机网络 07_路由算法

    编程与数学 03-002 计算机网络 07_路由算法一、静态路由算法&#xff08;一&#xff09;手工配置路由表的方法&#xff08;二&#xff09;静态路由的优缺点二、动态路由算法原理&#xff08;一&#xff09;距离矢量算法&#xff08;如贝尔曼 - 福特算法&#xff09;&#xff08…

    使用Python,OpenCV计算跑图的图像彩色度

    使用Python&#xff0c;OpenCV计算跑图的图像彩色度 这篇博客将介绍如何计算跑图里最鲜艳的top25图片和最灰暗的top25图片并显示色彩彩色度值展示。 效果图 以下分别是最鲜艳top25和最灰暗top25对比效果图&#xff1a; 最鲜艳top25效果图&#xff1a; 最灰暗top25效果图…

    LeetCode 60:排列序列

    LeetCode 60&#xff1a;排列序列问题定义与核心挑战 给定整数 n 和 k&#xff0c;返回集合 {1,2,...,n} 的第 k 个字典序排列。直接生成所有排列再遍历到第 k 个的方法&#xff08;时间复杂度 O(n!)&#xff09;会因 n≥10 时阶乘爆炸而超时&#xff0c;因此需要 数学推导 贪…

    亚远景-传统功能安全VS AI安全:ISO 8800填补的标准空白与实施难点

    一、为什么需要ISO 8800&#xff1a;传统安全标准的“盲区”传统功能安全&#xff08;ISO 26262&#xff09;• 假设&#xff1a;系统行为可被完整规格化&#xff0c;失效模式可枚举&#xff0c;风险可用概率-危害矩阵量化。• 盲区&#xff1a;对“设计意图正确&#xff0c;但…

    菜鸟教程 R语言基础运算 注释 和数据类型

    菜鸟教程 R语言基础运算 注释 和数据类型 1.注释 注释主要用于一段代码的解析&#xff0c;可以让阅读者更易理解&#xff0c;编程语言的注释会被编译器忽略掉&#xff0c;且不会影响代码的执行。 一般编程语言的注释分为单行注释与多行注释&#xff0c;但是 R 语言只支持单行注…

    华为云ELB(弹性负载均衡)持续报异常

    华为云ELB&#xff08;弹性负载均衡&#xff09;持续报异常&#xff0c;需结合实例类型&#xff08;共享型/独享型&#xff09;和异常代码进行针对性排查。以下是分步排查建议&#xff1a;一、根据实例类型排查网络配置共享型实例 安全组规则&#xff1a;检查后端服务器安全组是…

    《R for Data Science (2e)》免费中文翻译 (第2章) --- Workflow: basics

    写在前面 本系列推文为《R for Data Science (2)》的中文翻译版本。所有内容都通过开源免费的方式上传至Github&#xff0c;欢迎大家参与贡献&#xff0c;详细信息见&#xff1a; Books-zh-cn 项目介绍&#xff1a; Books-zh-cn&#xff1a;开源免费的中文书籍社区 r4ds-zh-cn …

    开源深度学习新宠:Burn框架助您无忧高效建模

    在日新月异的人工智能世界里&#xff0c;各类深度学习框架如雨后春笋般涌现&#xff0c;而Burn&#xff0c;作为新一代的深度学习框架&#xff0c;以其不妥协的灵活性、高效性和可移植性崭露头角。本文将深入探讨Burn的核心功能、应用场景及具体使用方法&#xff0c;帮助您更好…

    基于深度学习的图像分割:使用DeepLabv3实现高效分割

    前言 图像分割是计算机视觉领域中的一个重要任务&#xff0c;其目标是将图像中的每个像素分配到不同的类别中。近年来&#xff0c;深度学习技术&#xff0c;尤其是卷积神经网络&#xff08;CNN&#xff09;&#xff0c;在图像分割任务中取得了显著的进展。DeepLabv3是一种高效的…

    如何高效合并音视频文件(时间短消耗资源少)(二)

    英语字幕 1 00:00:06,480 --> 00:00:08,400 Good morning. We have a banger for you2 00:00:08,400 --> 00:00:09,840 today. We&amp;#39;re going to launch chatbt3 00:00:09,840 --> 00:00:11,519 agent. But before jumping into that, I&amp;#39;d4 00…

    内网后渗透攻击过程(实验环境)--4、权限维持(2)

    用途限制声明&#xff0c;本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具&#xff0c;严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果&#xff0c;作者及发布平台不承担任何责任。渗透测试涉及复杂技…

    CentOS 9 配置国内 YUM 源

    1.备份 sudo mv /etc/yum.repos.d/centos.repo /etc/yum.repos.d/centos.repo.backup sudo mv /etc/yum.repos.d/centos-addons.repo /etc/yum.repos.d/centos-addons.repo.backup2.创建新文件 vi /etc/yum.repos.d/centos.repo[baseos] nameCentOS Stream $releasever - BaseO…

    【算法】递归、搜索与回溯算法入门

    文章目录递归什么是递归为什么会用到递归如何理解递归如何写好一个递归搜索 vs 深度优先遍历 vs 深度优先搜索 vs 宽度&#xff08;广度&#xff09;优先遍历 vs 宽度&#xff08;广度&#xff09;优先搜索 vs 暴搜深度优先遍历 vs 深度优先搜索&#xff08;dfs&#xff09;宽度…

    借助Aspose.HTML控件,在 Python 中将 SVG 转换为 PDF

    您可能会发现许多解决方案都提供以编程方式将SVG转换为PDF 的功能。但这篇博文将介绍一个功能强大的 SDK&#xff0c;供 Python 开发人员自动化文件转换和操作。本指南将重点介绍通过 .NET 实现 Python 的 Aspose.HTML。此外&#xff0c;我们将逐步讲解相关步骤和代码片段&…