如何在 Synology NAS 的任务计划程序中获取需要第 3 方库 运行 的 python 脚本?

How to get python scripts requiring 3rd party libraries running in Task Scheduler of Synology NAS?

现在我需要 运行 一个在 Synology NAS 任务计划程序中使用第 3 方库的 py 文件。我通过 sudo su 获得了 NAS 终端的权限,并通过命令 curl -k https://bootstrap.pypa.io/get-pip.py | python3.

安装了 pip

脚本轮安装在“/var/packages/py3k/target/usr/local/bin”中。然后我尝试安装 pandas 和 sudo python3 -m pip install pandas ,安装成功。然后我继续安装请求,还有 DateTime。他们都成功了。

当我去 /volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages 时,我可以在那里看到他们。

我实际上安排了 2 个 py 文件,一个是简单的 py 文件,另一个是使用 3rd 方库的 py 文件。简单的py文件运行s在NAS中成功。它每分钟重复一次。但是用3rd party还是不行运行.

下面是运行完美的简单py文件,

def main():
    f = open("/volume1/homes/admin/python/result.txt", 'w+') 
    for i in range(10): 
        f.write("This is line {0:d}\n".format(i+1)) 
    f.close()
if __name__=="__main__":
    main()

下面是不太简单的,无法成功生成log.txt,

from datetime import datetime
import os

def write_file(filename,data):
    if os.path.isfile(filename):
        with open(filename, 'a') as f:  # in append mode
            f.write('\n' + data)   
    else:
        with open(filename, 'w') as f: # in write mode
            f.write(data)
 
def print_time():   
    now = datetime.now()
    current_time = now.strftime("%H:%M:%S")
    data = "This is to log each minute Cron runs, the time is: " + current_time

    return data

if __name__=="__main__":
    write_file('log.txt' , print_time())

有谁知道我的问题是什么?为什么不太简单的不能运行? OS 库在 Python 3.0 或更高版本中是默认的,所以我想我已经安装了所有必需的。

尝试同时指定文件名和路径。 在你的情况下是 write_file('/volume1/homes/admin/python/log.txt' , print_time()) 。我假设您将 log.txt 文件放在与 result.txt 文件相同的位置。

我记得synology nas喜欢比较明显的路径找文件