操作指南
公司通常会提供扩展屏,电脑及各类外设建议自行携带。
一、Python环境相关问题
1. 主流Python环境管理方式及安装方式区别
当前主流的Python环境管理方式(anaconda/miniconda/miniforge/venv)有何区别?此外,在这几种环境管理方式中,pip/conda/mamba三种安装方式的差异是什么?
参考B站视频 BV1Fm4ZzDEeY,该视频对上述问题讲解清晰,可详细查看。
2. 基于yml文件用Miniforge复制环境(保留原有Anaconda环境)
若电脑本地仅存在Anaconda环境,且有一个yml格式的Python环境包名称列表,如何使用Miniforge在本地复制该环境,同时保留原有的Anaconda环境?
可向AI咨询具体步骤,核心操作如下:
-
下载Miniforge(B站有大量详细安装教程,可自行搜索学习);
-
运行命令:conda env create -f environment.yml -n 你的新环境名;
-
验证环境创建成功后,切换至新环境即可使用。
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补充说明:
- 基础命令(未加—no-builds):
conda env export > environment.yml,导出内容会包含每个包的build编号,示例片段如下:
dependencies: - python=3.9.18=h42ad0f4_0 # 包含build编号 - numpy=1.24.3=py39h79a8e48_1- 推荐命令(加—no-builds):会自动移除每个包的build编号,仅保留核心版本信息(如python=3.9.18),示例片段如下:
dependencies: - python=3.9.18 # 仅保留版本号,无build编号 - numpy=1.24.3- 关键提醒:若版本号指定过于细致(包含build编号),可能导致在其他电脑上复现环境时出现依赖冲突问题,因此优先推荐使用带—no-builds参数的导出命令。
七、项目工作流示例(仅供参考)
以下为开始或完善一个项目的大致工作流程,可根据实际需求灵活调整,提升项目推进效率:
-
将.md格式的项目需求文件发送给AI(推荐使用GPT5.1),要求AI仔细研读需求,输出预期项目结构、按实施顺序排列的任务清单及交付文件清单。需确保每项任务包含具体可落地的实施要点,可直接转化为实际工作项;覆盖需求文档所有要求,重点关注易被忽略的细节。可将AI输出的内容发送给其他AI工具交叉检查,补充完善遗漏点。
-
让AI按照输出的任务清单逐步完成工作,建议每次仅分配1-2个核心任务,避免任务过多导致遗漏或质量下降。
-
完成单个或多个任务后,对照.md需求文件及预期项目结构,检查完成情况是否达标,若存在不符合项,反馈给AI进行修改完善。
-
当项目整体完成后,可借助其他AI工具再次校验,确认是否完全符合.md需求文件要求、是否存在可优化空间,让AI对完成度进行打分或预估;若仍有优化空间,可让AI生成后续优化的指令提示词,指导进一步完善。
-
项目优化完善后,让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即可完成大部分测试编写工作;若有特殊需求(如重点测试某类边界情况),可在提示词末尾补充说明,无需修改整体模板,便捷高效。
部分信息可能已经过时









