NAS 上跑 Python 脚本先建虚拟环境:五步落位,依赖不进全局

场景:脚本一多,全局环境先乱

NAS 上跑 Python 脚本是自动化运维的常见打法:定时备份脚本、数据搬运工具、巡检程序都离不开第三方包。麻烦在于直接用 pip 装包,包会落进系统全局的 Python 里——脚本 A 要旧版本库、脚本 B 要新版本库,全局环境先打架,运气差时连系统侧的依赖都被带歪。虚拟环境(venv)就是解这个结的:每套脚本一个独立环境,包各装各的,全局一点不碰。

前提两件

  • 机器上装好 Python3 或以上版本的套件;
  • 在电脑上用 SSH 以 root 权限登录 NAS。

先认版本:一条命令看清家底

进来先执行:

compgen -c python

列出来的名字各有含义:python 是系统内置版本,动不得;python2 是旧套件,不支持 venv;python3 与 python3.9 是套件版本,受 venv 支持又不干扰系统操作,官方建议就用这两个。后续命令里的 python3 想换成 python3.9,直接替换即可。

五步建环境

选定放环境的存储空间,一条条来:

cd /volume1
python3 -m venv dateutil_env
cd dateutil_env/
source bin/activate
  • cd /volume1:选存储空间,哪个卷宽敞用哪个;
  • python3 -m venv dateutil_env:创建虚拟环境,目录名随脚本用途起;
  • cd dateutil_env/:进入环境目录;
  • source bin/activate:激活——从这一刻起,pip 等安装工具自动把包装进虚拟环境,不再碰全局。

激活之后提示符会变样,装包、跑脚本都在环境内完成。环境用完退出、下次要用再激活,目录里一切如初。

小结

虚拟环境的逻辑一句话:给每套脚本一个自带的包仓库,互不打扰、不碰系统。五步命令里真正要动脑的只有选版本与起目录名,其余是肌肉记忆。

诚鑫致达科技为部署过的每套脚本留一份依赖底册,Python 版本与依赖包都锁在各自的虚拟环境里——机器重灌时照底册逐条复原,不靠谁的记性。