2. 开发环境准备:Python版本选择、虚拟环境搭建、必备库安装
好,咱们正式开始动手了。说实话,很多同学学系统托盘开发,一上来就卡在环境配置上。我当年也踩过不少坑,所以这一章咱们把基础打牢。你想想看,环境搞定了,后面写代码才顺心。
2.1 Python版本选择:别盲目追新
我个人习惯用 Python 3.8 到 3.11 之间的版本。为什么?因为 pystray 和 PIL 在这些版本上最稳定。我记得有一次项目急着上线,我手快装了 Python 3.12,结果 pystray 的某些回调函数在 Windows 上报了奇怪的错误。嗯,后来老老实实降回 3.10 才解决。
我的推荐版本:
- Windows 用户:Python 3.10.x(兼容性最好)
- macOS 用户:Python 3.9.x 或 3.10.x
- Linux 用户:Python 3.8+ 都行,系统自带的通常够用
说白了,别用 3.12 以上的版本。pystray 的维护者更新没那么快,你追新版本反而给自己找麻烦。
2.2 虚拟环境搭建:每个项目一个“小房间”
虚拟环境这东西,我刚开始学的时候觉得麻烦,后来吃过一次亏就老实了。有一次我在全局环境装了一堆库,结果两个项目依赖冲突,一个要旧版 PIL,一个要新版,搞得我焦头烂额。从那以后,每个项目我都单独建虚拟环境。
搭建步骤很简单,我一般用 Python 自带的 venv 模块:
# 打开终端,进入你的项目文件夹
cd your_project_folder
# 创建虚拟环境(名字叫 venv 是惯例)
python -m venv venv
# 激活虚拟环境
# Windows 下:
venv\Scripts\activate
# macOS / Linux 下:
source venv/bin/activate
激活成功后,终端前面会出现 (venv) 字样。这时候你安装的所有库,都只在这个项目里生效。
小技巧: 我习惯在项目根目录放一个 .gitignore 文件,把 venv/ 文件夹排除掉。这样代码上传到 Git 时,不会把整个虚拟环境带上去,省空间又干净。
2.3 必备库安装:pystray 和 PIL
好,虚拟环境激活后,咱们来装两个核心库。一个是 pystray,负责系统托盘图标和菜单;另一个是 PIL(Pillow),负责处理图标图片。
安装命令就一行:
pip install pystray pillow
等一下,这里有个坑。我曾经在 macOS 上直接 pip install pystray,结果报错说缺少 gi 模块。这是因为 pystray 在 Linux/macOS 上依赖 GTK 或 Cocoa 的底层库。解决办法是:
避坑指南(macOS / Linux 用户必看):
- macOS:先安装
pyobjc,命令是pip install pyobjc-framework-Cocoa - Linux:先安装系统级依赖,比如 Ubuntu 下
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0
Windows 用户一般没这个问题,直接装就行。
安装完成后,验证一下:
python -c "import pystray; import PIL; print('环境就绪!')"
如果没报错,恭喜你,环境搭好了。
2.4 版本兼容性速查表
为了方便你对照,我整理了一个表格。这是我踩过坑之后总结的:
| 操作系统 | 推荐 Python 版本 | pystray 版本 | Pillow 版本 | 额外依赖 |
|---|---|---|---|---|
| Windows 10/11 | 3.10.x | ≥0.19.0 | ≥9.0.0 | 无 |
| macOS (Intel/M1) | 3.9.x 或 3.10.x | ≥0.19.0 | ≥9.0.0 | pyobjc-framework-Cocoa |
| Ubuntu 20.04+ | 3.8.x 或 3.10.x | ≥0.19.0 | ≥9.0.0 | python3-gi 等系统包 |
我的习惯: 每次新建项目,我都会先创建一个 requirements.txt 文件,把依赖写进去。这样换电脑或给别人用的时候,直接 pip install -r requirements.txt 就搞定了。内容大概是这样:
pystray==0.19.5
Pillow==9.5.0
2.5 常见问题与解决
最后,分享几个我遇到过的问题,你遇到了别慌:
- 问题:
pip install很慢或超时。
解决: 换国内镜像源,比如pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pystray pillow - 问题: 导入 pystray 时报错
No module named 'gi'(Linux)。
解决: 你没装 GTK 的 Python 绑定,运行sudo apt install python3-gi就行。 - 问题: 图标显示不出来,或者是个白块。
解决: 多半是 PIL 生成的图片格式不对。后面章节我会专门讲图标制作,先确保 PIL 装好了。
好了,环境准备就到这里。下一章咱们开始写第一个系统托盘程序——让一个小图标出现在你的任务栏里。是不是有点期待了?