Skip to content

Python 面试 · 工程与依赖 ​


高频问法 ​

  1. 虚拟环境为什么要用?
  2. requirements.txt 和锁版本?
  3. 异常怎么设计?裸 except 为什么不好?
  4. 日志怎么打?
  5. 配置和密钥怎么管理?
  6. 脚本怎么做成可重复运行(幂等)?

口述参考 ​

1)虚拟环境 ​

每个项目独立依赖,避免全局包污染、「这台机器能跑那台不行」。
python -m venv .venv 然后激活再 pip 安装。

2)依赖冻结 ​

  • 开发可 requirements.txt 列主依赖
  • 协作/生产最好有锁文件(pip freeze、poetry.lock、uv.lock)保证版本一致
  • 区分主依赖与开发依赖(pytest 等)

3)异常 ​

  • 捕获具体异常(Timeout、HTTPError),少用裸 except:
  • 失败要日志 + 明确退出码或返回值
  • 不要吞掉异常假装成功

4)日志 ​

logging 模块:级别、时间、模块名;生产打到文件/stdout 给采集。
调试用 print 可以,交付脚本应换成 logger。

5)配置与密钥 ​

  • 环境变量或本地未提交的 .env(记得 gitignore)
  • 不同环境(本地/测试)配置分离
  • API Key、数据库密码不进仓库、不进日志

6)幂等与可重跑 ​

批处理脚本:用「已处理 id 表/文件」跳过;输出写临时文件再原子替换;支持 --dry-run。
面试一句:脚本也要能失败重跑,不能半成功不可恢复。


小checklist(口述收尾) ​

text
venv ✅  依赖锁 ✅  timeout ✅  日志 ✅  密钥不进库 ✅  可重跑 ✅