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 装好了。

好了,环境准备就到这里。下一章咱们开始写第一个系统托盘程序——让一个小图标出现在你的任务栏里。是不是有点期待了?