第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项目,依赖管理一定要规范。我一般这样操作:

  1. 生成requirements.txt:pip freeze > requirements.txt
  2. 只记录顶层依赖:用pipreqs工具自动扫描项目用到的包,避免记录一堆间接依赖
  3. 锁定版本号:比如pandas==1.5.3,别用pandas>=1.5.3这种写法,否则不同环境装出来的版本不一样,容易出问题

避坑指南:我曾经在MES项目里用pip install -r requirements.txt部署,结果因为某个依赖包升级了API,整个系统启动报错。后来我改用pipenv或者poetry管理依赖,锁定版本号,再也没出过这种问题。

知识体系总览

下面这张图,把本章的核心逻辑串起来了。你一看就明白:

Python基础环境搭建知识体系 Python 3.10+ 环境 安装方式 Windows: 勾选PATH Linux: pyenv管理 macOS: Homebrew 虚拟环境 venv: 轻量内置 conda: 数据科学 miniconda: 推荐 包管理 pip换源 requirements.txt 版本锁定 目标:可复现、可迁移的开发环境

这张图把安装、虚拟环境、包管理三个核心模块串起来了。你照着这个思路一步步来,Python环境这块基本不会出大问题。

我的建议:刚开始别追求完美,先把环境搭起来跑通一个Hello World。后面遇到具体问题再回来优化。我见过太多人卡在环境搭建这一步,连代码都没写一行就放弃了。


公众号:蓝海资料掘金营,微信deep3321