3. 环境搭建与工具:Python开发环境配置、Postman工具使用、Flask框架快速入门、虚拟环境管理
说实话,做运动控制API开发,环境搭不好,后面全是坑。
我见过太多人,代码写得挺漂亮,结果一跑起来,不是包冲突就是版本不对。折腾半天,最后发现是Python环境没配好。嗯,咱们今天就把这事一次性搞定。
3.1 Python开发环境配置
我个人习惯用Python 3.8+。为什么?因为运动控制领域很多底层库(比如pySerial、Modbus库)对3.8支持最稳。你非要用3.12也行,但有些老库可能就罢工了。
第一步:安装Python
去官网下载,记得勾选「Add Python to PATH」。这个选项不勾,后面你敲python命令会提示找不到。我刚开始学的时候就被这个坑过,折腾了半小时。
第二步:验证安装
python --version
pip --version
如果能看到版本号,说明装好了。看不到?检查环境变量。
第三步:安装IDE
我推荐VS Code,轻量、插件多。装好之后,再装这几个插件:
- Python(微软官方那个)
- Pylance(代码补全)
- Jupyter(调试方便)
3.2 虚拟环境管理
为什么要用虚拟环境?说白了,就是隔离。
你想想看,项目A要用Flask 1.0,项目B要用Flask 2.0。如果全装全局,那肯定打架。虚拟环境就是给每个项目一个独立的小房间。
创建虚拟环境:
python -m venv venv
第一个venv是模块名,第二个venv是文件夹名。我习惯叫venv,也有人叫.env,随你。
激活虚拟环境:
Windows:
venv\Scripts\activate
Mac/Linux:
source venv/bin/activate
激活后,命令行前面会出现(venv)字样。这时候你装任何包,都只在这个项目里生效。
退出虚拟环境:
deactivate
3.3 Flask框架快速入门
Flask是Python里最轻量的Web框架。做运动控制API,用它正合适。为什么?因为运动控制接口通常不复杂,就是几个RESTful端点,Flask够用、不臃肿。
安装Flask:
pip install flask
写一个最简单的API:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/status', methods=['GET'])
def get_status():
# 模拟读取运动控制器状态
status = {
'axis_x': 120.5,
'axis_y': 45.2,
'speed': 1000,
'is_moving': False
}
return jsonify(status)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
这段代码干了什么?
- 创建了一个Flask应用
- 定义了一个GET接口 /api/status
- 返回运动控制器的当前状态(JSON格式)
- 启动服务,监听所有IP的5000端口
跑起来之后,浏览器打开 http://localhost:5000/api/status,就能看到返回的JSON数据。
3.4 Postman工具使用
API写好了,怎么测?总不能每次都开浏览器吧。Postman就是干这个的。
安装: 去官网下载,免费版够用。
基本用法:
- 打开Postman,点击「New Collection」,给集合起个名(比如「运动控制API」)
- 点击「Add Request」,输入请求名(比如「获取状态」)
- 选择HTTP方法(GET),输入URL(http://localhost:5000/api/status)
- 点击「Send」,看响应
测试POST请求:
假设我们要发送一个控制指令:
POST http://localhost:5000/api/move
Body -> raw -> JSON:
{
"axis": "x",
"position": 200.0,
"speed": 500
}
在Postman里,选POST方法,Body选raw,格式选JSON,然后粘贴上面的JSON。点Send,就能看到响应。
3.5 知识体系总览
下面这张图,是我自己画的环境搭建流程。你看一眼,心里就有数了。
这张图从左到右、从上到下,就是咱们搭建环境的完整路径。每一步都踩实了,后面写代码才不慌。
3.6 避坑指南
最后,分享几个我踩过的坑:
- 端口被占用: 启动Flask时提示端口被占用,换个端口就行。或者用
netstat -ano | findstr :5000查一下谁在用。 - 跨域问题: 前端调API时,浏览器报跨域错误。加个
flask-cors包就能解决。 - 中文乱码: 返回JSON里有中文,显示乱码。在
app.run()里加charset='utf-8'。
一句话总结: 环境搭好了,后面的事就顺了。别急着写代码,先把地基打牢。