0

我只是试图触发一个脚本以经常运行以将项目下载到目录中。

我有一个下载目录的 python 脚本。我试过直接从 cron 运行 python 脚本......

5 * * * * python /home/yt/pybox/boxclient.py -U email@address.com -td -Pd moremusic/youtube

甚至让 cron 调用运行 python 脚本的 bash 脚本......

5 * * * * cd /home/yt/yxbox/runscript

我什至设置了一个 inotifywait 来监听 cron 执行触摸命令,然后从那里触发 python 脚本......

#!/usr/bin/env bash

inotifywait -mr -e ATTRIB * |

while read dir ev file;
do
   python boxclient.py -U email@address.com -td -Pd moremusic/youtube;
done;

所有这些方式都给了我这个我迷失的错误:

Traceback (most recent call last):
  File "boxclient.py", line 224, in <module>
    sys.exit(main())
  File "boxclient.py", line 190, in main
    (parser, options, args) = parse_args(argv)
  File "boxclient.py", line 80, in parse_args
    return (parser, options, decode_args(args, options))
  File "/home/yt/pybox/pybox/utils.py", line 134, in decode_args
    setattr(options, attr, value.decode(ENCODING))
TypeError: decode() argument 1 must be string, not None

当我在 cl 上运行 python 和 bash 脚本时,一切都运行良好。

4

1 回答 1

0

我认为你需要失去和之间的-U空间email@address.com。语法是:

python pybox/boxclient.py -Ubob -td -Pd dir1/dir2

(来自https://github.com/hzheng/pybox)。所以在 Cron 中尝试:

5 * * * * /usr/bin/env python /home/yt/pybox/boxclient.py -Uemail@address.com -td -Pd moremusic/youtube

通常,短格式选项在实参和它的参数之间不使用空格,而长格式选项可以。所以要么是-Uemail@address.com要么--username email@address.com

于 2013-04-09T12:58:21.730 回答