3. 上位机开发环境搭建:Python环境配置、PyCharm安装与设置、依赖库安装
好,咱们正式开始动手了。这一章我带你把开发环境搭起来。别小看这一步,我见过太多人代码写了一半,才发现是环境没配好,白白浪费半天时间。咱们稳一点,一步到位。
3.1 Python环境配置
Python版本怎么选?我个人习惯用Python 3.8到3.10之间的版本。为什么?因为运动控制卡厂商提供的SDK,很多只在这几个版本上测试过。你装个3.12,可能连ctypes的某些接口都报错。
安装步骤很简单,但有几个坑你得避开:
- 下载安装包:去python.org,找Windows installer (64-bit)。别下embeddable版本,那个是给嵌入式用的,缺一堆东西。
- 安装时勾选"Add Python to PATH"——这一步我强调一下,很多人忘了勾,后面在命令行敲python提示找不到,又回来重装。
- 验证安装:打开命令行,敲
python --version,看到版本号就对了。
3.2 PyCharm安装与设置
编辑器我推荐PyCharm Community Edition,免费版就够用。Professional版那些远程调试、数据库工具,咱们做上位机开发基本用不上。
安装完以后,有几个关键设置我建议你立刻改掉:
| 设置项 | 推荐值 | 为什么这么设 |
|---|---|---|
| File > Settings > Project > Python Interpreter | 选择你刚装的Python 3.9 | 确保项目用对解释器,不会跑到系统默认的旧版本上 |
| Editor > General > Auto Import | 勾选"Add unambiguous imports on the fly" | 写代码时自动补全import语句,省时间 |
| Tools > Python Integrated Tools > Default test runner | 选择pytest | 后面写单元测试时,pytest比unittest好用得多 |
| Appearance & Behavior > System Settings > Project Opening | 选择"New window" | 多个项目同时打开时不会乱套 |
嗯,这里还要提一个我自己的习惯:给项目建虚拟环境。每个项目独立一套依赖,互不干扰。PyCharm里新建项目时,选"New environment using Virtualenv",Python版本指向3.9,后面所有依赖都装在这个虚拟环境里。
为什么一定要用虚拟环境?
你想想看,你同时做三四个项目,有的用pyserial 3.5,有的用3.7,全局装一个版本,总有一个项目要炸。虚拟环境就是给每个项目一个独立的小房间,各玩各的。
3.3 依赖库安装:pyserial, socket, ctypes
好,环境搭好了,现在装咱们的核心依赖。三个库,各有各的用处:
- pyserial:串口通讯,跟控制卡通过RS232/RS485打交道
- socket:网络通讯,控制卡走TCP/IP时用它
- ctypes:调用控制卡厂商提供的DLL动态库
安装命令很简单,打开PyCharm的Terminal(确保虚拟环境已激活),依次敲:
pip install pyserial
pip install socket # 其实socket是Python标准库,一般不用装
pip install ctypes # 也是标准库,但某些精简版Python可能缺
等一下,socket和ctypes其实是Python内置模块。我为什么还要提?因为我在项目中遇到过,有人用了一个叫"embedable python"的版本,里面缺了ctypes,结果调用DLL时直接报ModuleNotFoundError。所以,装一下更保险。
验证是否装成功,在Terminal里敲python -c "import serial; print(serial.__version__)",看到版本号就说明pyserial装好了。socket和ctypes同理。
pip install -r requirements.txt全搞定。文件内容就三行:
pyserial==3.5
socket
ctypes
3.4 本章知识体系总览
下面这张图,把咱们这一章的核心逻辑串起来了。你一看就明白,环境搭建不是瞎装,每一步都有它的目的。
3.5 验证环境是否可用
装完别急着关。我习惯写一个简单的测试脚本,确认三个库都能正常导入:
# test_env.py
import serial
import socket
import ctypes
print("pyserial 版本:", serial.__version__)
print("socket 模块: 正常")
print("ctypes 模块: 正常")
print("环境搭建完成!")
在PyCharm里右键运行,看到三行输出就说明环境没问题。如果哪一行报错,回去检查对应的库有没有装对。
好,环境搭完了。后面咱们就可以真正开始写代码,跟控制卡通讯了。你想想看,有了pyserial发指令、socket连网络、ctypes调DLL,基本上市面上九成的运动控制卡都能搞定。这一章打下的基础,后面每一章都会用到。