关于群晖NAS计划运行Python脚本的笔记

群晖NAS安装python3及模块
用NAS计划运行python脚本

学习Python时,编了一个小脚本用来每天上几个特定网址,更新数据并用邮件发过来。
由于没有服务器,就用NAS设置计划任务来实现。
过程中出现的问题做个笔记:

  1. 安装python3:
    机型DS718+。直接在套件中心安装的python3套件。模块开ssh用pip安装,或更简单地,用计划任务立即运行脚本直接pip安装。过程比较曲折,先后折腾了docker,alpine等等,主要是没搞好pip。最后发现其实非常简单:
    最新的python3是包含pip的,调用命令:python3 pip install XXXX.
    如果nas里同时有python2 和python3(一般都是如此,系统本身需要python2,所以必须保留),使用命令:python3 -m pip install XXXX (或python2, 安装相应版本)
  2. 设置计划任务
    控制面板-计划任务-任务设置-用户定义脚本:
    python3 /volume1/xxxxx/xxxx/xxxx.py
    直接调用python3,脚本包括完整路径。否则报错:
    在这里插入图片描述
    3.脚本中读写文件都必须包括完整路径,并加encoding参数。nas中的python3缺省编码似乎是ascii。所以所有调试用的print要全部用英文输出。在这里插入图片描述
群晖 NAS (Synology DiskStation) 支持通过安装 Python 环境来运行 Python 项目。以下是详细步骤: ### 步骤一:启用 SSH 访问 1. 登录到群晖的管理界面(DSM)。 2. 进入“控制面板” > “终端机和SNMP”,然后勾选“启动SSH服务”。 ### 步骤二:连接到NAS并安装Python环境 1. 使用 PuTTY 或其他SSH客户端连接到您的NAS设备,输入管理员账号及密码登录。 2. 默认情况下,群晖 DSM 已预装了 Python 3.x 版本;如果需要更高版本或其他依赖库,则可以手动下载对应的 .spk 包并通过套件中心进行安装。 ### 步骤三:设置工作目录与权限 1. 将您想要部署的Python项目的文件上传至指定路径下,例如 `/volume1/homes/user/python_project` (其中 `user` 指的是您在 Synology 上创建的实际用户名),可通过FTP、SMB等方式传输; 2. 利用命令行工具修改该目录及其内部所有文件夹和文件的所有权以及读写权限: ```bash sudo chown -R user:user /path/to/project/ chmod -R u=rwX,g=rX,o= / ``` ### 步骤四:配置虚拟环境(推荐) 为了防止不同程序之间的包冲突,并保持系统整洁有序,在每个工程里建立独立的python解释器是很重要的。 ```shell # 创建一个新的虚拟环境 cd /path/to/project virtualenv venv # 如果你想使用 python3 虚拟环境则执行以下指令代替上面一行: # python3 -m venv venv source ./venv/bin/activate # 启动虚拟环境后才能继续下一步操作... pip install --upgrade pip setuptools wheel # 更新内置模块后再添加外部资源 ``` 之后就可以正常使用`pip`去安装所需的第三方库啦! ### 步骤五:编写脚本来自动运行任务 编辑一个名为 `.sh` 的 shell script 文件作为定时作业调度计划的一部分: ```bash #!/bin/sh source /path/to/project/venv/bin/activate && cd /path/to/project && exec python main.py "$@" ``` 确保给这个Shell Script加上可执行属性(`chmod +x run.sh`) 并测试能否成功触发Python应用. 最后一步就是将此 Shell Script 添加进 Task Scheduler 中定期被执行咯~
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值