第1章:Python基础环境搭建
做半导体MES开发,Python环境是绕不开的第一道坎。我见过不少新人,一上来就装最新版Python,结果项目跑不起来,折腾半天才发现是版本不兼容。嗯,咱们今天就聊聊怎么把这一步走稳。
1.1 Python 3.10+ 安装
为什么选3.10+?说白了,MES系统里很多库已经放弃对3.8以下版本的支持了。我去年在一个项目里就吃过亏——客户现场还是Python 3.6,结果我们用的一个数据解析库死活装不上,最后只能手动降级代码。
安装步骤其实很简单,但有几个细节要注意:
- Windows用户:去官网下载安装包时,记得勾选「Add Python to PATH」。我见过太多人忘了这一步,后面在命令行里敲python没反应,又得重装。
- Linux用户:别用系统自带的包管理器装,版本太老。建议用pyenv管理多版本,后面切换起来方便。
- macOS用户:Homebrew装的话,记得brew install python@3.10,指定版本号。
验证安装:打开终端,输入 python --version,看到 Python 3.10.x 就对了。
1.2 虚拟环境配置
为什么要用虚拟环境?你想想看,一个项目用Django 3.2,另一个用Django 4.0,全装到系统里不就打架了吗?我刚开始做MES开发时,就因为这个把系统Python搞崩过两次,后来再也不敢偷懒了。
1.2.1 venv(Python内置)
Python 3.3以后自带的venv,轻量又好用。我个人习惯在每个项目根目录下建一个.venv文件夹:
# 创建虚拟环境
python -m venv .venv
# 激活(Windows)
.venv\Scripts\activate
# 激活(Linux/macOS)
source .venv/bin/activate
# 退出
deactivate
小技巧:把.venv加到.gitignore里,别把虚拟环境提交到代码仓库。我曾经见过有人把整个虚拟环境打包上传,结果别人拉下来路径不对,根本用不了。
1.2.2 conda(数据科学首选)
如果你做MES系统里涉及数据分析、机器学习,我建议用conda。它不光管Python包,连底层C库都能一起管,省心不少。
# 创建环境
conda create -n mes_env python=3.10
# 激活
conda activate mes_env
# 退出
conda deactivate
# 查看所有环境
conda env list
我个人更推荐miniconda,比完整版anaconda轻量得多。你想想看,装个环境还要等半小时,多耽误事。
1.3 pip换源与包管理
pip默认源在国外,下载速度慢得让人抓狂。我记得有一次部署MES系统,一个requirements.txt装了快两个小时,客户在旁边看着,那叫一个尴尬。
1.3.1 永久换源
我建议直接改配置文件,一劳永逸:
# Linux/macOS
mkdir -p ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
EOF
# Windows
# 在 %APPDATA%\pip\pip.ini 中写入相同内容
1.3.2 临时换源
有时候只是临时装一个包,用参数指定源更方便:
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
注意:国内镜像源更新可能有延迟。如果你装的是刚发布的包,建议切回官方源试试。我曾经因为镜像源没同步,折腾了半天才发现是版本问题。
1.3.3 常用源对比
| 源名称 | 地址 | 速度 | 稳定性 |
|---|---|---|---|
| 清华 | https://pypi.tuna.tsinghua.edu.cn/simple | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 阿里云 | https://mirrors.aliyun.com/pypi/simple | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 中科大 | https://pypi.mirrors.ustc.edu.cn/simple | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| 豆瓣 | https://pypi.douban.com/simple | ⭐⭐⭐ | ⭐⭐⭐ |
1.3.4 包管理最佳实践
做MES项目,依赖管理一定要规范。我一般这样操作:
- 生成requirements.txt:pip freeze > requirements.txt
- 只记录顶层依赖:用pipreqs工具自动扫描项目用到的包,避免记录一堆间接依赖
- 锁定版本号:比如pandas==1.5.3,别用pandas>=1.5.3这种写法,否则不同环境装出来的版本不一样,容易出问题
避坑指南:我曾经在MES项目里用pip install -r requirements.txt部署,结果因为某个依赖包升级了API,整个系统启动报错。后来我改用pipenv或者poetry管理依赖,锁定版本号,再也没出过这种问题。
知识体系总览
下面这张图,把本章的核心逻辑串起来了。你一看就明白:
这张图把安装、虚拟环境、包管理三个核心模块串起来了。你照着这个思路一步步来,Python环境这块基本不会出大问题。
我的建议:刚开始别追求完美,先把环境搭起来跑通一个Hello World。后面遇到具体问题再回来优化。我见过太多人卡在环境搭建这一步,连代码都没写一行就放弃了。
公众号:蓝海资料掘金营,微信deep3321