3、环境搭建基础:操作系统选择(Windows/Linux)、Python环境安装、包管理器(pip/conda)配置
做自动控制仿真,第一步不是写代码,而是搭环境。
我见过太多人,一上来就急着装库、跑demo,结果卡在环境冲突上,一卡就是半天。说实话,这很打击信心。所以这一章,咱们先把地基打牢。
3.1 操作系统怎么选?Windows 还是 Linux?
这个问题,几乎每次培训都有人问。我的回答很简单:看你的最终部署场景。
核心原则:开发环境尽量贴近运行环境。如果你最终要在嵌入式Linux上跑控制算法,那开发机最好也是Linux。如果只是做桌面级仿真验证,Windows完全够用。
我个人习惯用 Windows + WSL2 的组合。为什么?
- Windows 下日常办公、写文档、画图方便
- WSL2 里跑 Ubuntu,直接享受 Linux 生态的实时内核和 Python 库支持
- 两边文件互通,不用来回切系统
但如果你做的是 硬实时控制(比如机器人底层、PLC 仿真),我建议直接上纯 Linux。Windows 的调度延迟有时候会让你抓狂——我在项目中遇到过,一个定时器任务在 Windows 下抖动了 5ms,导致电机出现肉眼可见的抖动。
| 场景 | 推荐系统 | 理由 |
|---|---|---|
| 桌面级仿真(Python + Simulink) | Windows | 工具链成熟,调试方便 |
| 嵌入式/实时控制 | Linux (Ubuntu 22.04) | 实时性更好,生态统一 |
| 两者兼顾 | Windows + WSL2 | 灵活,但注意 WSL2 的网络和 GPU 穿透 |
注意:WSL2 默认使用虚拟交换机,如果你需要控制真实硬件(如串口、CAN 卡),记得用 usbipd-win 做 USB 穿透。我曾经在这上面浪费了一下午。
3.2 Python 环境安装——别装错了版本
Python 版本这事,说起来都是泪。自动控制领域常用的库,比如 control、slycot、scipy,对 Python 版本有隐性要求。
我建议:直接上 Python 3.10 或 3.11。
- 3.8 以下:很多新库已经不维护了
- 3.12 以上:部分底层库(如
slycot)还没完全适配 - 3.10/3.11:稳定,生态最全
安装步骤其实很简单,但有几个坑要注意:
- 下载时勾选「Add Python to PATH」——这个不勾,后面命令行里打
python会找不到。我见过有人因为这个重装了三次系统。 - 安装路径不要有中文和空格——比如
C:\Program Files\Python310没问题,但D:\软件\Python 3.10就可能出幺蛾子。 - 验证安装:打开终端,输入
python --version,看到版本号就对了。
小技巧:在 Windows 上,如果同时装了多个 Python 版本,可以用 py -3.10 来指定版本。Linux 下则用 python3.10。
3.3 包管理器:pip 还是 conda?
这个问题,说白了就是「你要不要管依赖冲突」。
pip 轻量、直接,适合简单项目。但它的依赖解析是线性的,遇到冲突就报错,不会自动帮你降级或升级。
conda 则像个管家,它会分析所有包的依赖关系,尽量给你一个「能跑」的环境。尤其适合科学计算和自动控制领域——因为很多底层库(如 BLAS、LAPACK)用 conda 安装更省心。
我个人习惯:日常用 pip,复杂项目用 conda。
3.3.1 pip 配置要点
安装完 Python 后,第一件事就是换源。不然下载速度会让你怀疑人生。
# 临时使用清华源
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
# 永久配置(推荐)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
注意:不要全局用阿里源或豆瓣源,有些冷门库只有 PyPI 官方才有。我建议只对常用库用镜像,冷门库用官方源。
3.3.2 conda 配置要点
如果你选择 conda,推荐安装 Miniconda 而不是 Anaconda。Anaconda 预装太多用不到的包,占空间不说,还容易冲突。
# 安装后先换源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
# 创建独立环境(强烈推荐)
conda create -n control_env python=3.10
conda activate control_env
为什么要创建独立环境?你想想看,你同时做两个项目,一个用 control 0.9.0,一个用 control 0.10.0,如果不隔离,分分钟炸掉。
3.4 本章知识体系总览
下面这张图,帮你把本章的核心逻辑串起来:
3.5 避坑指南——我踩过的几个坑
- 我曾经在 Windows 上直接装
slycot,结果编译报错。后来发现用 conda 安装conda install -c conda-forge slycot就没事。底层 Fortran 库的依赖,conda 处理得比 pip 好。 - 我曾经因为 PATH 环境变量里同时有 Python 3.8 和 3.10,导致
pip install装到了旧版本里。后来统一用python -m pip install来避免歧义。 - 我曾经在 WSL2 里装完所有库,结果发现
matplotlib的图形界面弹不出来。解决方案:安装python3-tk并配置 X11 转发。
最终建议:如果你是新手,直接走 Windows + WSL2 + Miniconda + Python 3.10 这条路线。这是目前最稳、最省心的组合。等你熟悉了,再根据项目需求调整。
环境搭好了,后面写代码才顺手。别急,慢慢来。