如何在 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喜欢比较明显的路径找文件
现在我需要 运行 一个在 Synology NAS 任务计划程序中使用第 3 方库的 py 文件。我通过 sudo su
获得了 NAS 终端的权限,并通过命令 curl -k https://bootstrap.pypa.io/get-pip.py | python3
.
脚本轮安装在“/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喜欢比较明显的路径找文件