3. 搭建开发环境:Python环境配置、PyCharm安装、虚拟环境管理、依赖管理(requirements.txt)

好,咱们正式开始动手了。

做光谱仪自动进样控制,说白了就是写代码去指挥硬件干活。但写代码之前,得先把“家伙事儿”备齐。我见过不少新手,上来就写,结果环境配了一整天,心态直接崩了。别急,跟着我来,半小时搞定。

3.1 Python环境配置:选对版本,少走弯路

Python版本怎么选?我个人习惯用Python 3.8或3.9。为什么?因为光谱仪常用的串口库(比如pyserial)和数据处理库(比如numpy),在这些版本上最稳定。我踩过坑,用Python 3.11去装一个老库,结果编译报错,折腾了两小时。嗯,这里要注意:别追新,稳定第一。

下载地址去官网:python.org。别去某度搜,容易下到带广告的版本。

安装时有个关键勾选——“Add Python to PATH”。我刚开始学的时候忘了勾,后面命令行里打python没反应,还以为电脑坏了。你想想看,多尴尬。

我的小技巧:安装完后,打开命令行(cmd或终端),输入 python --versionpip --version。如果都正常显示版本号,说明环境配好了。

3.2 PyCharm安装:专业版还是社区版?

PyCharm,JetBrains家的王牌IDE。做自动化控制项目,我强烈推荐用专业版。为什么?因为它自带远程开发、数据库工具、还有专业的调试器。社区版虽然免费,但少了些硬核功能。

不过话说回来,如果你只是写个几百行的脚本,社区版也够用。我早期做项目时就用社区版,后来项目大了,代码文件一多,社区版没有代码导航,找函数找得我眼冒金星。后来换了专业版,真香。

安装过程很简单,一路Next就行。唯一要注意的是:安装时勾选“Create Desktop Shortcut”和“Add launchers dir to PATH”。这样以后在命令行里可以直接敲 charm . 打开当前目录,省事。

避坑指南:我曾经在PyCharm里直接打开一个包含中文路径的文件夹,结果解释器死活识别不了。后来把所有项目路径都改成纯英文,问题解决。记住:项目路径不要有中文,不要有空格

3.3 虚拟环境管理:隔离才是王道

为什么要用虚拟环境?说白了,就是给每个项目一个独立的“小房间”。你想想看,你同时做三个项目:一个用numpy 1.19,一个用numpy 1.24,还有一个用numpy 2.0。如果不隔离,装一个就把另一个搞崩了。我遇到过,一个同事把所有库都装在全局环境里,结果升级一个库,整个项目跑不起来了。嗯,那场面,惨不忍睹。

Python自带的 venv 模块就够用。创建虚拟环境很简单:

# 打开终端,进入项目目录
python -m venv venv

# 激活虚拟环境(Windows)
venv\Scripts\activate

# 激活虚拟环境(Mac/Linux)
source venv/bin/activate

激活后,命令行前面会出现 (venv) 字样。这时候你安装的所有库,都只在这个项目里生效。

我个人习惯在PyCharm里直接创建虚拟环境。新建项目时,PyCharm会自动弹窗让你选择解释器,选“New environment using Virtualenv”就行。它会自动帮你创建并激活,省得敲命令。

重点:每次打开项目,第一件事就是检查右下角是否显示 (venv)。如果没有,说明虚拟环境没激活,你装的库可能装到全局去了。

3.4 依赖管理:requirements.txt 的妙用

项目做完了,要部署到另一台电脑上。怎么把依赖库一次性装好?这时候 requirements.txt 就派上用场了。

它就是一个文本文件,里面列出了项目所有依赖的库名和版本号。生成方式很简单:

# 在虚拟环境激活状态下执行
pip freeze > requirements.txt

打开看看,内容大概长这样:

numpy==1.24.3
pyserial==3.5
opencv-python==4.8.0.74
matplotlib==3.7.1

到了新电脑上,只需要一条命令就能全部装好:

pip install -r requirements.txt

这里有个坑:pip freeze 会把虚拟环境里所有库都列出来,包括一些依赖的依赖。我建议你手动整理一下,只保留你直接引用的库。比如你的代码里只用了 pyserialnumpy,那就只写这两个。为什么?因为依赖的依赖版本可能会变,写死了反而容易出问题。

我的习惯:每次项目完成一个里程碑,就更新一次 requirements.txt。并且用 pip list --outdated 检查一下有没有库可以升级。保持依赖库版本不要太老,但也不要太新。

3.5 实战:搭建光谱仪自动进样控制项目环境

好,理论说完了,咱们来实操一遍。假设项目名叫 spectrometer_auto_sampler

  1. 在D盘或E盘创建一个文件夹,名字就叫 spectrometer_auto_sampler。路径不要有中文。
  2. 打开PyCharm,点击“New Project”,选择这个文件夹。
  3. 在“Interpreter”选项里,选择“New environment using Virtualenv”。Python版本选你安装的3.8或3.9。
  4. 点击“Create”,等待几秒钟。PyCharm会自动创建虚拟环境并激活。
  5. 打开下方的“Terminal”标签,你会看到命令行前面有 (venv) 字样。
  6. 输入以下命令安装基础库:
pip install pyserial numpy matplotlib opencv-python

安装完成后,输入 pip list 查看已安装的库。确认无误后,生成 requirements.txt:

pip freeze > requirements.txt

好了,环境搭建完成。以后每次写代码,都先确认虚拟环境是否激活。我习惯在PyCharm的设置里,把“Default project interpreter”也指向这个虚拟环境,这样新建文件时自动关联,省心。

最后提醒一句:别把 venv 文件夹提交到Git仓库里。它太大了,而且别人可以自己生成。在项目根目录创建一个 .gitignore 文件,写上 venv/ 就行。

环境搭好了,下一章咱们就开始写真正的控制代码了。准备好了吗?