mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
2990 字
8 分钟
项目操作指南
2026-02-26

操作指南#

公司通常会提供扩展屏,电脑及各类外设建议自行携带。

一、Python环境相关问题#

1. 主流Python环境管理方式及安装方式区别#

当前主流的Python环境管理方式(anaconda/miniconda/miniforge/venv)有何区别?此外,在这几种环境管理方式中,pip/conda/mamba三种安装方式的差异是什么?

参考B站视频 BV1Fm4ZzDEeY,该视频对上述问题讲解清晰,可详细查看。

2. 基于yml文件用Miniforge复制环境(保留原有Anaconda环境)#

若电脑本地仅存在Anaconda环境,且有一个yml格式的Python环境包名称列表,如何使用Miniforge在本地复制该环境,同时保留原有的Anaconda环境?

可向AI咨询具体步骤,核心操作如下:

  1. 下载Miniforge(B站有大量详细安装教程,可自行搜索学习);

  2. 运行命令:conda env create -f environment.yml -n 你的新环境名;

  3. 验证环境创建成功后,切换至新环境即可使用。

3. 数据源了解#

数据源参考:https://akshare.akfamily.xyz/introduction.html

B站视频 BV1nhJVzMEv9,可快速了解该数据源的使用方法。

二、工具下载与配置#

需下载并配置以下工具:

  • Miniforge

  • Node.js

  • Powershell7

  • Docker

  • SQLite

  • Git

  • VScode

VScode补充配置说明#

(1)用户设置JSON文件:需配置上述创建的虚拟环境与Powershell7,推荐借助Copilot协助配置,高效便捷。

(2)项目的.vscode/settings.json配置:可根据个人需求自定义,以下为简易参考配置:

{
"python.defaultInterpreterPath": " 路径 \\python.exe",
"python.analysis.extraPaths": [ " 路径 \\Lib\\site-packages"
],
"python.terminal.activateEnvironment": true,
"python.terminal.activateWorkspace": true,
"python.analysis.autoImportCompletions": true,
"python.analysis.indexing": true
}

(3)Pylance配置(添加至用户设置JSON文件):用于解决Copilot无法识别虚拟环境的问题,配置如下:

// Pylance/ Pyright 语言服务器配置 - 解决Copilot无法识别虚拟环境
"python.analysis.autoImportCompletions": true,
"python.analysis.indexing": true,
"python.analysis.diagnosticMode": "openFilesOnly",
"python.analysis.diagnosticSeverityOverrides": {
"reportMissingImports": "none",
"reportMissingModuleSource": "none"
}

三、AI工具推荐(仅供参考,可选用个人习惯的工具)#

  • GitHub Copilot Chat(VScode插件):学生认证可参考B站视频 BV1Abp1z6Eqs,教程详细且有效;

  • Lingma - Alibaba Cloud AI Coding Assistant(VScode插件):需配置MCP;

  • MiniMax

  • Cline(需配置API)

  • Iflow

  • 豆包、千问、Deepseek、Gemini

四、项目日志体系建议#

项目日志体系建议遵循以下原则,确保日志规范、可追溯、易分析:

1. 日志模块选用#

使用Python内置logging模块,无需额外安装第三方依赖,稳定性高、兼容性强。

2. 日志体系目录结构(推荐成熟方案)#

src/utils/
├── __init__.py
├── logger_config.py 统一日志配置模块(负责定义日志的规则、格式、输出方式等核心逻辑)
├── logger.py 日志工具函数(提供简单、易用的日志调用接口)
├── output_manager.py 输出目录管理(不仅为日志文件提供目录路径,还能管理其他输出文件(如报表、数据文件、模型文件等))
└── ...其他模块

3. 日志级别使用规范#

级别用途示例
DEBUG详细信息,仅用于诊断问题数据转换步骤、中间变量值
INFO重要的业务事件,记录正常流程数据加载完成、分析开始/完成
WARNING警告性信息,不影响程序运行但需关注数据缺失、转换异常、性能下降
ERROR错误事件,程序可继续运行API调用失败、数据验证失败
CRITICAL严重错误,程序可能无法继续运行数据库连接失败、关键文件丢失

4. 日志格式规范#

建议使用结构化日志格式,确保每条日志都包含关键上下文信息,便于后续检索和分析。推荐格式模板如下:

%(asctime)s - %(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s

各字段说明:

  • asctime:人类可读的时间戳(默认格式 YYYY-MM-DD HH:MM,ms);

  • name:记录器名称(通常为模块名,如 name);

  • levelname:日志级别(DEBUG/INFO/WARNING/ERROR/CRITICAL);

  • filename:产生日志的文件名;

  • lineno:产生日志的代码行号;

  • message:具体的日志消息内容。

5. 日志轮转配置#

为防止单个日志文件无限增大,占用过多存储空间,需配置日志轮转。Python的logging.handlers模块提供两种常用轮转策略:

  • RotatingFileHandler:基于文件大小轮转,当文件达到指定大小时,自动重命名旧文件并创建新文件;

  • TimedRotatingFileHandler:基于时间轮转,例如每天、每小时自动生成一个新的日志文件。

五、U盘交付要求#

U盘交付内容需满足清晰、轻量、可复现的要求,具体打包内容如下:

  • 项目核心源码、可执行.py文件:要求目录结构清晰,代码注释完整,便于查看和运行;

  • 项目说明文档:包含使用流程、版本信息、注意事项等关键内容,方便使用者快速上手;

  • 关键配置文件、依赖清单:确保环境可快速复现,避免因配置缺失导致无法运行;

  • 测试数据/示例文件:仅保留必要的演示数据,避免占用过多存储空间,保证交付轻量。

六、导出YAML文件步骤#

激活已创建的Python虚拟环境后,运行以下命令导出yml环境配置文件(建议命名为environment.yml,也可根据个人需求自定义文件名):

conda env export --no-builds > environment.yml

补充说明:

  1. 基础命令(未加—no-builds):conda env export > environment.yml,导出内容会包含每个包的build编号,示例片段如下:
dependencies:
- python=3.9.18=h42ad0f4_0 # 包含build编号
- numpy=1.24.3=py39h79a8e48_1
  1. 推荐命令(加—no-builds):会自动移除每个包的build编号,仅保留核心版本信息(如python=3.9.18),示例片段如下:
dependencies:
- python=3.9.18 # 仅保留版本号,无build编号
- numpy=1.24.3
  1. 关键提醒:若版本号指定过于细致(包含build编号),可能导致在其他电脑上复现环境时出现依赖冲突问题,因此优先推荐使用带—no-builds参数的导出命令。

七、项目工作流示例(仅供参考)#

以下为开始或完善一个项目的大致工作流程,可根据实际需求灵活调整,提升项目推进效率:

  1. 将.md格式的项目需求文件发送给AI(推荐使用GPT5.1),要求AI仔细研读需求,输出预期项目结构、按实施顺序排列的任务清单及交付文件清单。需确保每项任务包含具体可落地的实施要点,可直接转化为实际工作项;覆盖需求文档所有要求,重点关注易被忽略的细节。可将AI输出的内容发送给其他AI工具交叉检查,补充完善遗漏点。

  2. 让AI按照输出的任务清单逐步完成工作,建议每次仅分配1-2个核心任务,避免任务过多导致遗漏或质量下降。

  3. 完成单个或多个任务后,对照.md需求文件及预期项目结构,检查完成情况是否达标,若存在不符合项,反馈给AI进行修改完善。

  4. 当项目整体完成后,可借助其他AI工具再次校验,确认是否完全符合.md需求文件要求、是否存在可优化空间,让AI对完成度进行打分或预估;若仍有优化空间,可让AI生成后续优化的指令提示词,指导进一步完善。

  5. 项目优化完善后,让AI根据.md需求文件及实际完成情况,生成项目README.md文档,便于后续查阅、交接及复用。

注意:项目推进过程中,建议及时备份文件或使用Git进行版本管理,避免文件丢失或误操作导致工作返工。

八、Python单元测试#

1. 什么是Python单元测试?#

单元测试(Unit Testing)是针对程序中最小的可测试模块(比如一个函数、一个方法)进行的测试。其核心目的是验证该模块在给定输入时,是否能返回预期输出,同时妥善处理边界情况和异常场景,确保模块功能的正确性。

如果有时间强烈推荐观看B站视频BV1KZWKz3Ek5(12min),视频清晰易懂。

VSCode还为pytest提供了非常好用的图形化界面:打开命令面板(ctrl+shift+p),选择Python: Configure Tests,选择pytest,选择测试目录,即可在左边Testing测试面板里看到所有测试用例,通过这个UI界面既可以只跑一个测试函数,也可以跑整个测试文件,甚至可以加断点进行debug。

2. 为什么需要单元测试?#

  • 保障代码质量:提前发现代码中的逻辑错误、漏洞,避免问题遗留至上线环节;

  • 支持代码重构:修改、优化代码后,运行单元测试即可快速验证是否破坏原有功能,降低重构风险;

  • 充当直观文档:测试用例清晰展示了函数/方法的预期用法、输入输出规范,便于后续查阅和交接。

3. Python中的单元测试工具#

  • unittest:Python标准库自带的测试框架,风格类似Java的JUnit,无需额外安装,兼容性强;

  • pytest(推荐):第三方测试库,语法简洁、功能更强大,支持参数化测试、夹具等高级功能,是行业内广泛使用的主流工具。

4. 单元测试的基本结构(Arrange-Act-Assert)#

几乎所有单元测试都遵循“准备-执行-断言”的固定模式,流程清晰、可复用,具体如下:

  • Arrange(准备):搭建测试环境,设置测试所需的数据、参数等;

  • Act(执行):调用被测试的函数、方法,执行具体的测试操作;

  • Assert(断言):检查执行结果是否与预期一致,验证模块功能是否达标。

5. 如何用VSCode Copilot帮你写单元测试?#

(1)一个好的测试提示词应包含这些内容#

  • 明确测试框架:指定使用pytest(推荐)或unittest,避免AI生成不符合预期的测试代码;

  • 明确测试目标:说明被测试的函数/方法名称、参数类型、返回值、核心功能;

  • 列出测试场景:覆盖正常输入、边界条件、异常输入,若涉及外部服务需说明;

  • 进阶要求:如使用Mock模拟外部调用、参数化测试、夹具(fixture)等高级用法;

  • 明确断言要求:说明对测试结果的具体验证方式,确保断言精准。

(2)通用提示词模板(直接复制使用)#

请使用 pytest 为以下代码编写单元测试。
被测试代码:
{这里粘贴你的函数/类代码}
你的任务是:
1. 首先分析代码的功能、输入参数、返回值以及可能的逻辑分支。
2. 然后生成一组全面的单元测试,覆盖以下场景(自动推断,但如有特别要求请说明):
正常情况(多种典型输入)
边界条件(如空值、零、极大/极小值、特殊字符等)
异常情况(应抛出的异常及其条件)
如果函数涉及外部依赖(API、数据库、文件系统等),请使用 unittest.mock 进行模拟,避免真实调用。
3. 测试代码应遵循 pytest 最佳实践:
使用 @pytest.mark.parametrize 处理多组数据
使用 fixture 管理共享资源或模拟对象
测试函数命名清晰(test_xxx)
包含必要的 import 和注释
4. 如果函数有文档字符串或类型注解,请参考它们来确定预期行为。如果没有,请根据常见逻辑推断,并在注释中说明假设。
请直接输出完整的测试代码,不要额外解释。

(3)核心总结#

该提示词的核心优势的是让AI主动理解被测试代码,而非被动等待开发者列出所有细节。它会引导AI分析代码功能、自动推断测试场景、遵循pytest最佳实践,最终生成高质量、可直接执行的单元测试代码。

实际使用时,你只需粘贴被测试的函数/类代码,Copilot即可完成大部分测试编写工作;若有特殊需求(如重点测试某类边界情况),可在提示词末尾补充说明,无需修改整体模板,便捷高效。

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

项目操作指南
https://asyuki.hyperspark.cn/posts/guide/操作指南/
作者
Asyuki
发布于
2026-02-26
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00