1.Python 虚拟环境与异常处理
wabicai
# 1.Python 虚拟环境与异常处理
同一台机器上有多个 Python 项目时,直接把依赖装到系统环境里很容易互相影响。可以先为项目建一个 .venv,再确认脚本和 pip 用的是同一个解释器。
# 虚拟环境怎么用?
在 macOS / Linux 的 shell 中:
python3 -m venv .venv
source .venv/bin/activate
python -m pip --version
deactivate
1
2
3
4
2
3
4
activate 主要是调整当前 shell 的命令搜索路径,不激活也可以直接运行 .venv/bin/python。这个目录不用提交到 Git,也别整个复制到服务器;记录依赖,在目标环境重新创建。
# except 应该写多宽?
只捕获当前代码知道怎么处理的错误。比如用户输入端口号,int() 可能抛出 ValueError:
def parse_port(raw: str) -> int:
try:
port = int(raw)
except ValueError as exc:
raise ValueError("端口必须是整数") from exc
if not 1 <= port <= 65535:
raise ValueError("端口必须在 1 到 65535 之间")
return port
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
from exc 保留原来的异常,排查时能看到是转换失败。不要用空的 except: 把所有异常吞掉,否则真正的程序错误也会被当成普通输入问题。
文件读写优先用 with open(...) 自动关闭;其他必须执行的清理可以放进 finally。注意不要在 finally 里 return,那会盖掉原先的异常。
资料:Python venv 文档 (opens new window)、错误与异常教程 (opens new window)。