导航菜单

  • 1.vector
  • 2.milvus
  • 3.pymilvus
  • 4.rag
  • 5.rag_measure
  • ragflow
  • heapq
  • HNSW
  • cosine_similarity
  • math
  • typing
  • etcd
  • minio
  • collections
  • jieba
  • random
  • beautifulsoup4
  • chromadb
  • sentence_transformers
  • numpy
  • lxml
  • openpyxl
  • PyMuPDF
  • python-docx
  • requests
  • python-pptx
  • text_splitter
  • all-MiniLM-L6-v2
  • openai
  • llm
  • BPETokenizer
  • Flask
  • RAGAS
  • BagofWords
  • langchain
  • Pydantic
  • abc
  • faiss
  • MMR
  • scikit-learn
  • Runnable
  • PromptEngineering
  • dataclasses
  • LaTeX
  • rank_bm25
  • TF-IDF
  • asyncio
  • sqlalchemy
  • fastapi
  • Starlette
  • uvicorn
  • argparse
  • Generic
  • ssl
  • urllib
  • python-dotenv
  • RRF
  • CrossEncoder
  • Lost-in-the-middle
  • Jinja2
  • logger
  • io
  • venv
  • concurrent
  • parameter
  • SSE
  • 1. 前言
  • 2. 前置知识
    • 2.1 什么是Python包?
    • 2.2 什么是pip?
    • 2.3 如何安装Python包?
  • 3. 什么是虚拟环境?
    • 3.1 虚拟环境的概念
    • 3.2 虚拟环境的作用
  • 4. 为什么需要虚拟环境?
    • 4.1 避免版本冲突
    • 4.2 保持系统环境干净
    • 4.3 便于项目管理和分享
  • 5. 准备工作
    • 5.1 检查Python版本
    • 5.2 确认pip可用
  • 6. 创建你的第一个虚拟环境
    • 6.1 选择项目目录
    • 6.2 创建虚拟环境
    • 6.3 查看虚拟环境结构
  • 7. 激活和退出虚拟环境
    • 7.1 激活虚拟环境
    • 7.2 验证虚拟环境
    • 7.3 退出虚拟环境
  • 8. 在虚拟环境中安装和使用包
    • 8.1 激活虚拟环境并安装包
    • 8.2 在Python代码中使用安装的包
    • 8.3 对比全局环境和虚拟环境
  • 9. 依赖管理:requirements.txt
    • 9.1 什么是requirements.txt?
    • 9.2 生成requirements.txt
    • 9.3 从requirements.txt安装依赖
    • 9.4 手动编写requirements.txt
  • 10. 完整项目示例
    • 10.1 项目结构
    • 10.2 创建项目文件
    • 10.3 运行项目
  • 11. 常见问题和解决方案
    • 11.1 虚拟环境激活失败
    • 11.2 找不到python命令
    • 11.3 包安装到全局环境而不是虚拟环境
    • 11.4 虚拟环境占用空间太大
    • 11.5 如何删除虚拟环境?
  • 12. 最佳实践
    • 12.1 每个项目一个虚拟环境
    • 12.2 不要提交虚拟环境到Git
    • 12.3 及时更新requirements.txt
    • 12.4 在README中说明环境要求
  • 13. 总结
    • 13.1 核心要点回顾
    • 13.2 下一步学习
    • 13.3 实践建议

1. 前言 #

  • 环境变量
  • 终端命令
  1. 什么是虚拟环境,为什么要用它?
  2. 虚拟环境的核心概念与原理
  3. 如何使用 venv 创建、激活和删除虚拟环境
  4. 如何用 requirements.txt 管理项目依赖
  5. 各平台(Windows、Mac、Linux)命令对照
  6. 常见错误与最佳实践

2. 前置知识 #

在学习虚拟环境之前,我们需要先了解一些基础知识。这些知识对于理解虚拟环境非常重要。

2.1 什么是Python包? #

讲解:

Python包(Package)是别人已经写好的代码,我们可以直接使用,而不需要自己从头编写。比如:

  • numpy:用于科学计算
  • pandas:用于数据处理
  • requests:用于发送HTTP请求

这些包就像工具箱里的工具,需要的时候拿来用就行。

2.2 什么是pip? #

讲解:

pip是Python的包管理工具,用来安装、卸载、查看Python包。可以把它想象成"应用商店",我们通过pip来下载和安装各种Python包。

检查pip是否安装:

# 在命令行(Windows是CMD或PowerShell,Mac/Linux是终端)中输入以下命令
# 检查pip版本,如果显示版本号说明已安装
pip --version

如果pip未安装,安装方法:

# Windows系统
python -m ensurepip --upgrade

# Mac/Linux系统
python3 -m ensurepip --upgrade

2.3 如何安装Python包? #

讲解:

使用pip可以轻松安装Python包。安装后的包会被放在系统的Python安装目录中,所有Python项目都可以使用。

安装包的示例:

# 安装单个包
pip install numpy

# 安装多个包
pip install numpy pandas requests

# 安装指定版本的包
pip install numpy==1.21.0

查看已安装的包:

# 列出所有已安装的包
pip list

3. 什么是虚拟环境? #

3.1 虚拟环境的概念 #

讲解:

虚拟环境(Virtual Environment)是一个独立的Python运行环境。它就像给你的项目单独准备了一个"房间",这个房间里有自己独立的Python解释器和包,不会影响其他项目。

生活类比:

想象一下:

  • 全局环境:就像学校的公共图书馆,所有学生都可以使用,但书是共享的
  • 虚拟环境:就像每个学生自己的书桌,可以放自己需要的书,不会影响别人

3.2 虚拟环境的作用 #

讲解:

虚拟环境主要解决以下问题:

  1. 版本冲突:项目A需要numpy 1.20版本,项目B需要numpy 1.21版本,如果都装在全局环境就会冲突
  2. 环境隔离:每个项目的依赖互不干扰
  3. 便于分享:可以记录项目需要哪些包,其他人可以快速搭建相同环境

4. 为什么需要虚拟环境? #

4.1 避免版本冲突 #

讲解:

假设你有两个项目:

  • 项目A:需要旧版本的某个包(比如numpy 1.19)
  • 项目B:需要新版本的同一个包(比如numpy 1.21)

如果都安装在全局环境,只能安装一个版本,另一个项目就会出错。虚拟环境让每个项目有自己独立的包版本。

4.2 保持系统环境干净 #

讲解:

直接在系统Python中安装包会"污染"全局环境。使用虚拟环境后,系统Python保持干净,只有虚拟环境中才有项目需要的包。

4.3 便于项目管理和分享 #

讲解:

虚拟环境可以记录项目需要哪些包,生成一个依赖文件(requirements.txt)。其他人拿到你的项目后,可以快速安装相同的包,保证环境一致。

5. 准备工作 #

5.1 检查Python版本 #

讲解:

虚拟环境功能需要Python 3.3及以上版本。现在让我们检查一下你的Python版本。

检查Python版本:

# Windows系统
python --version

# Mac/Linux系统
python3 --version

如果显示Python 3.3或更高版本,就可以使用虚拟环境了。

5.2 确认pip可用 #

讲解:

确保pip工具可以正常使用,这是安装包和管理虚拟环境的基础。

测试pip:

# 查看pip版本
pip --version

# 如果显示版本号,说明pip可用
# 如果报错,需要先安装pip(参考2.2节)

6. 创建你的第一个虚拟环境 #

6.1 选择项目目录 #

讲解:

首先,我们需要在一个文件夹中创建虚拟环境。建议为每个项目创建独立的虚拟环境。

创建项目文件夹:

# Windows系统(在CMD或PowerShell中)
mkdir my_first_project
cd my_first_project

# Mac/Linux系统(在终端中)
mkdir my_first_project
cd my_first_project

6.2 创建虚拟环境 #

讲解:

使用Python内置的venv模块创建虚拟环境。venv是Python 3.3+自带的,不需要额外安装。

创建虚拟环境的命令:

# Windows系统
python -m venv venv

# Mac/Linux系统
python3 -m venv venv

命令解释:

  • python -m venv:使用venv模块
  • venv:虚拟环境的文件夹名称(可以改成其他名字,比如myenv)

创建成功后,你会看到项目文件夹中多了一个venv文件夹。

6.3 查看虚拟环境结构 #

讲解:

虚拟环境创建后,里面包含了独立的Python解释器和pip工具。让我们看看它的结构。

查看虚拟环境内容:

# Windows系统
dir venv

# Mac/Linux系统
ls venv

虚拟环境的主要文件夹:

  • Scripts/(Windows)或bin/(Mac/Linux):包含可执行文件,如python、pip
  • Lib/:包含安装的Python包
  • pyvenv.cfg:配置文件

7. 激活和退出虚拟环境 #

7.1 激活虚拟环境 #

讲解:

创建虚拟环境后,需要"激活"它才能使用。激活后,你安装的包会安装到虚拟环境中,而不是全局环境。

激活虚拟环境:

# Windows系统(CMD)
venv\Scripts\activate

# Windows系统(PowerShell)
venv\Scripts\Activate.ps1

# Mac/Linux系统
source venv/bin/activate

激活成功的标志:

激活后,命令行提示符前面会显示(venv),表示当前在虚拟环境中:

# 激活前
C:\Users\YourName>

# 激活后(Windows)
(venv) C:\Users\YourName>

# 激活后(Mac/Linux)
(venv) username@computer:~/my_first_project$

7.2 验证虚拟环境 #

讲解:

激活后,让我们验证一下是否真的在使用虚拟环境。

检查Python路径:

# 查看当前使用的Python路径
# Windows系统
where python

# Mac/Linux系统
which python

你会看到Python路径指向虚拟环境中的Python,而不是系统Python。

7.3 退出虚拟环境 #

讲解:

当你完成工作,想要退出虚拟环境时,使用deactivate命令。

退出虚拟环境:

# 所有系统都使用这个命令
deactivate

退出后,提示符前的(venv)会消失,表示已回到全局环境。

8. 在虚拟环境中安装和使用包 #

8.1 激活虚拟环境并安装包 #

讲解:

现在让我们在虚拟环境中安装一些常用的包。记住,一定要先激活虚拟环境!

完整示例:

# 第一步:激活虚拟环境
# Windows (CMD)
venv\Scripts\activate

# Windows (PowerShell)
venv\Scripts\Activate.ps1

# Mac/Linux
source venv/bin/activate

# 第二步:安装包(现在安装的包只会在这个虚拟环境中)
pip install numpy

# 第三步:验证安装
pip list

# 你会看到numpy在列表中,而且只在这个虚拟环境中

8.2 在Python代码中使用安装的包 #

讲解:

安装包后,我们可以在Python代码中使用它。让我们创建一个简单的示例。

创建测试文件:

# test_numpy.py
# 这个文件用于测试numpy是否安装成功

# 导入numpy包
import numpy as np

# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])

# 打印数组
print("创建的数组:", arr)

# 计算数组的平均值
print("平均值:", np.mean(arr))

运行测试:

# 确保虚拟环境已激活(提示符前有(venv))
# 运行Python文件
python test_numpy.py

如果运行成功并输出结果,说明虚拟环境和包都工作正常!

8.3 对比全局环境和虚拟环境 #

讲解:

让我们做一个对比实验,看看全局环境和虚拟环境的区别。

实验步骤:

# 1. 在全局环境查看已安装的包
# 先退出虚拟环境(如果已激活)
deactivate

# 查看全局环境的包
pip list

# 2. 激活虚拟环境
# Windows
venv\Scripts\activate

# Mac/Linux
source venv/bin/activate

# 3. 查看虚拟环境的包
pip list

# 你会发现两个环境的包列表是不同的!

9. 依赖管理:requirements.txt #

9.1 什么是requirements.txt? #

讲解:

requirements.txt是一个文本文件,记录了项目需要哪些Python包及其版本。有了这个文件,其他人可以快速安装相同的依赖。

9.2 生成requirements.txt #

讲解:

当我们安装了一些包后,可以生成一个requirements.txt文件,记录当前虚拟环境中安装的所有包。

生成依赖文件:

# 确保虚拟环境已激活
# 生成requirements.txt文件
pip freeze > requirements.txt

查看生成的文件:

# Windows系统
type requirements.txt

# Mac/Linux系统
cat requirements.txt

文件内容示例:

numpy==1.21.0
pandas==1.3.0
requests==2.26.0

9.3 从requirements.txt安装依赖 #

讲解:

当别人拿到你的项目,或者你在新电脑上重新搭建环境时,可以从requirements.txt安装所有依赖。

安装依赖:

# 第一步:创建并激活新的虚拟环境
python -m venv new_env
# Windows
new_env\Scripts\activate
# Mac/Linux
source new_env/bin/activate

# 第二步:从requirements.txt安装所有包
pip install -r requirements.txt

# 第三步:验证安装
pip list

9.4 手动编写requirements.txt #

讲解:

你也可以手动创建requirements.txt文件,只记录项目真正需要的包。

创建requirements.txt:

# requirements.txt
# 这是项目依赖文件
# 每行一个包,可以指定版本

# 数据处理
numpy>=1.20.0
pandas>=1.3.0

# 网络请求
requests>=2.25.0

# Web框架(如果需要)
flask>=2.0.0

版本号说明:

  • ==1.21.0:精确版本
  • >=1.20.0:最低版本
  • ~=1.20.0:兼容版本

10. 完整项目示例 #

10.1 项目结构 #

讲解:

让我们创建一个完整的项目示例,展示虚拟环境在实际项目中的使用。

项目文件夹结构:

my_project/
├── venv/              # 虚拟环境(不要提交到git)
├── main.py            # 主程序文件
├── requirements.txt   # 依赖列表
└── README.md          # 项目说明

10.2 创建项目文件 #

讲解:

让我们创建一个简单的数据分析项目作为示例。

创建main.py:

# main.py
# 这是一个简单的数据分析示例程序

# 导入需要的包
import numpy as np
import pandas as pd

# 创建示例数据
def create_sample_data():
    """创建示例数据"""
    # 生成随机数据
    data = {
        '姓名': ['张三', '李四', '王五', '赵六'],
        '年龄': [25, 30, 35, 28],
        '工资': [5000, 8000, 12000, 6000]
    }
    # 创建DataFrame
    df = pd.DataFrame(data)
    return df

# 分析数据
def analyze_data(df):
    """分析数据"""
    # 打印数据
    print("员工数据:")
    print(df)
    print("\n" + "="*30 + "\n")

    # 计算平均年龄
    avg_age = df['年龄'].mean()
    print(f"平均年龄:{avg_age:.1f}岁")

    # 计算平均工资
    avg_salary = df['工资'].mean()
    print(f"平均工资:{avg_salary:.0f}元")

    # 找出工资最高的人
    max_salary_person = df.loc[df['工资'].idxmax()]
    print(f"\n工资最高:{max_salary_person['姓名']},{max_salary_person['工资']}元")

# 主程序
if __name__ == "__main__":
    # 创建数据
    data = create_sample_data()

    # 分析数据
    analyze_data(data)

创建requirements.txt:

# requirements.txt
# 项目依赖包列表

numpy>=1.20.0
pandas>=1.3.0

10.3 运行项目 #

讲解:

现在让我们按照正确的步骤运行这个项目。

完整操作步骤:

# 第一步:创建项目文件夹
mkdir my_project
cd my_project

# 第二步:创建虚拟环境
# Windows
python -m venv venv
# Mac/Linux
python3 -m venv venv

# 第三步:激活虚拟环境
# Windows (CMD)
venv\Scripts\activate
# Windows (PowerShell)
venv\Scripts\Activate.ps1
# Mac/Linux
source venv/bin/activate

# 第四步:安装依赖
pip install -r requirements.txt

# 第五步:运行程序
python main.py

如果一切正常,你会看到数据分析的结果输出!

11. 常见问题和解决方案 #

11.1 虚拟环境激活失败 #

问题: 在Windows PowerShell中执行venv\Scripts\activate报错

解决方案:

# PowerShell默认不允许执行脚本,需要修改执行策略
# 以管理员身份打开PowerShell,执行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

# 或者直接使用CMD而不是PowerShell

11.2 找不到python命令 #

问题: 输入python提示找不到命令

解决方案:

# Windows系统,尝试使用:
py -m venv venv

# Mac/Linux系统,尝试使用:
python3 -m venv venv

# 或者使用完整路径
# 先找到Python安装路径,然后使用完整路径创建虚拟环境

11.3 包安装到全局环境而不是虚拟环境 #

问题: 安装包后发现安装到了全局环境

解决方案:

# 检查是否激活了虚拟环境
# 提示符前应该有(venv)

# 如果没有,先激活:
# Windows
venv\Scripts\activate
# Mac/Linux
source venv/bin/activate

# 然后检查Python路径
# Windows
where python
# Mac/Linux
which python

# 应该指向虚拟环境中的Python

11.4 虚拟环境占用空间太大 #

问题: 虚拟环境文件夹很大

讲解:

虚拟环境确实会占用一些空间(通常几百MB),这是正常的。每个项目都有独立的虚拟环境,可以:

  • 项目完成后删除虚拟环境(直接删除venv文件夹)
  • 需要时重新创建:python -m venv venv,然后pip install -r requirements.txt

11.5 如何删除虚拟环境? #

讲解:

删除虚拟环境很简单,直接删除虚拟环境文件夹即可。

删除方法:

# 先退出虚拟环境(如果已激活)
deactivate

# 然后删除文件夹
# Windows
rmdir /s venv

# Mac/Linux
rm -rf venv

12. 最佳实践 #

12.1 每个项目一个虚拟环境 #

讲解:

为每个Python项目创建独立的虚拟环境,这样可以避免不同项目之间的依赖冲突。

12.2 不要提交虚拟环境到Git #

讲解:

虚拟环境文件夹(venv/)不应该提交到Git仓库,因为:

  • 文件太多,占用空间大
  • 不同操作系统不兼容
  • 可以通过requirements.txt重新创建

创建.gitignore文件:

# .gitignore
# Python虚拟环境
venv/
env/
ENV/

# Python缓存文件
__pycache__/
*.pyc
*.pyo

# 其他
.DS_Store

12.3 及时更新requirements.txt #

讲解:

当你在虚拟环境中安装新包后,记得更新requirements.txt:

# 安装新包后
pip freeze > requirements.txt

12.4 在README中说明环境要求 #

讲解:

在项目的README.md文件中,说明如何搭建环境:

## 环境搭建

1. 创建虚拟环境:`python -m venv venv`
2. 激活虚拟环境:`venv\Scripts\activate` (Windows) 或 `source venv/bin/activate` (Mac/Linux)
3. 安装依赖:`pip install -r requirements.txt`

13. 总结 #

13.1 核心要点回顾 #

讲解:

通过本教程,你应该掌握了:

  1. 虚拟环境的概念:独立的Python运行环境
  2. 创建虚拟环境:python -m venv venv
  3. 激活虚拟环境:venv\Scripts\activate(Windows)或source venv/bin/activate(Mac/Linux)
  4. 退出虚拟环境:deactivate
  5. 依赖管理:使用requirements.txt记录和安装依赖

13.2 下一步学习 #

讲解:

掌握了虚拟环境后,你可以:

  • 开始学习Python的各种包(numpy、pandas、requests等)
  • 学习如何构建完整的Python项目
  • 学习如何将项目部署到服务器

13.3 实践建议 #

讲解:

最好的学习方式是实践:

  1. 创建一个新项目
  2. 创建虚拟环境
  3. 安装一些包并编写代码
  4. 生成requirements.txt
  5. 删除虚拟环境,然后重新创建并安装依赖

通过反复练习,你会越来越熟练!

祝你学习愉快!如果遇到问题,记得查看"常见问题和解决方案"部分。

← 上一节 uvicorn
下一节 没有下一节 →

访问验证

请输入访问令牌

Token不正确,请重新输入