002-Python开发环境搭建:PyCharm、VSCode与虚拟环境
昨天深夜调试一个老项目,环境依赖冲突直接让解释器崩了。错误日志里密密麻麻的版本号看得人头皮发麻——这场景太熟悉了,又是全局环境乱装包的后果。折腾两小时回滚环境后,我决定把环境搭建这件事重新梳理清楚。工具选对,环境隔离做好,能省下至少一半的调试时间。
选编辑器:PyCharm还是VSCode?
新手常纠结这两个选择。我的建议是:长期做Python开发选PyCharm,多语言混战选VSCode。
PyCharm的专业版对Web开发、科学计算支持很到位,特别是Django和Flask的项目,开箱即用。它的智能补全和调试器是我用过最顺手的,尤其是远程调试和数据库工具链。社区版也够用,但大型项目导航会稍显吃力。
# PyCharm的调试技巧:条件断点
for i in range(1000):
# 右键断点设置 i == 500 时才暂停
process_data(i) # 不用傻等循环跑完
VSCode的优势在于轻量和插件生态。装上Python扩展后,基本功能齐备,但深度功能需要自己配置。它的多语言支持是真香,前脚写Python,后脚改JavaScript,不用切软件。不过项目文件超过千个时,索引速度会明显慢于PyCharm。
// settings.json 关键配置(VSCode)
{
"python.linting.enabled": true, // 代码检查一定打开
"python.formatting.provider": "black", // 格式化用black准没错
"terminal.integrated.shell.windows": "cmd.exe" // Windows下别用PowerShell,路径处理有坑
}
虚拟环境:别再用全局环境了
见过太多人用pip install直接往系统Python里装包,后期项目依赖打架,只能重装系统Python。虚拟环境是Python项目的保险绳。
venv是官方推荐,Python 3.3以上自带,无额外安装成本:
python -m venv myenv # 创建环境
source myenv/bin/activate # Linux/Mac激活
myenv\Scripts\activate # Windows激活,注意反斜杠
激活后终端提示符会带环境名,这时候pip install只会装到当前环境。退出用deactivate。
Anaconda适合科学计算场景,尤其是需要非Python库(如CUDA、MKL)的时候。但注意conda的依赖解析有时很慢,混合使用conda和pip要小心优先级。
conda create -n myenv python=3.8 # 指定Python版本
conda activate myenv
conda install numpy # 优先用conda装,包更稳定
pip install some-package # conda没有的再用pip
依赖管理:requirements.txt只是起点
手动维护requirements.txt太原始了,试试pip freeze > requirements.txt?它会把所有包包括间接依赖都列出来,导致环境臃肿。推荐用pipreqs只生成项目实际导入的包:
pip install pipreqs
pipreqs ./ --encoding=utf-8 # 生成干净的requirements.txt
进阶玩家该上Poetry或Pipenv了。Poetry的依赖解析算法更优,还能打包发布:
# pyproject.toml (Poetry配置)
[tool.poetry.dependencies]
python = "^3.8"
requests = { version = "^2.25", extras = ["security"] } # 可以声明额外特性
调试实战:环境问题排查
遇到“ModuleNotFoundError”先别慌,按这个顺序查:
import sys; print(sys.path)看Python去哪儿找包which python或where python确认当前Python解释器- 检查虚拟环境是否激活(终端提示符或
sys.prefix) - 如果是PyCharm,去设置里看项目解释器路径对不对
PyCharm调试时有个隐藏技巧:在调试控制台直接运行代码片段,能实时查看变量。VSCode则要善用“调试控制台”和“监视”窗口。
个人配置习惯
我的工作流通常这样安排:
- 本地开发:PyCharm + venv,用Poetry管理依赖
- 服务器调试:VSCode Remote SSH直接连过去,在服务端创建虚拟环境
- 临时脚本:直接用VSCode,开个临时虚拟环境,用完即删
环境目录我习惯放在项目根目录下(./venv),方便备份和删除。但记得在.gitignore里加venv/和.env,别把虚拟环境传上Git。
最后给个忠告:不要相信系统Python,也不要相信任何声称“只装一个包”的冲动。每个项目都该有自己独立的虚拟环境,这是血泪教训换来的纪律。刚开始觉得麻烦,等哪天需要同时维护Python 2.7的老项目和Python 3.10的新项目时,你会回来谢我的。

730

被折叠的 条评论
为什么被折叠?



