gpt4 book ai didi

python - 使用 Crontab 运行简单的 Python 文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:22:52 25 4
gpt4 key购买 nike

我正在尝试使用 crontab 运行一个简单的 Python 脚本,但我无法让它工作。不过,当我不使用 Python 时,我可以在 crontab 中运行一个简单的程序。这是我的 Crontab 文件中有效的行:

* * * * * echo “cron test” >> /home/ftpuser/dev/mod_high_lows/hello.txt

我也可以直接从命令行运行这个 python 脚本 testit.py。这是我的 testit.py 文件,它输出一个 csv 文件。

#!/usr/bin/env python

import f_file_handling
_data = [(12,15,17)]
f_file_handling.csv_out('my_file_test',_data)

上面的文件有一个我创建的函数,但我知道它可以工作,因为当我从命令行运行 testit.py 时,它会按照我的预期运行,如下所示:

python testit.py

所以我让 Crontab 自己工作,让 testit.py 文件自己工作,然后我尝试用 Crontab 运行 testit.py 文件。我确实使用命令使 testit.py 文件可执行:

chmod +x testit.py 

我看到了它的可执行文件,因为当我在正确的目录中时,该文件在我的 linux 命令窗口中显示为绿色。现在,在我用来运行早期 Crontab 测试的同一个 Crontab 文件中,我添加了以下行:

* * * * * /home/ftpuser/dev/mod_high_lows/testit.py

是的,我试图让它每分钟都执行一次,只是试图运行最简单的测试来让 Crontab 和 Python 协同工作。

这是我正在使用的:

  • Ubuntu 14.04.2 LTS(GNU/Linux 3.13.0-52-generic x86_64)

  • Python 2.7

以上是我搭建的linux服务器上的

你在我的 testit.py 文件的顶部看到了 shebang 行,根据我的研究,这应该有效。
至于我的 testit.py python 文件,我是在 Windows 机器上编写的,然后将其传输到服务器,但是当 crontab 和 python 不能一起工作时,我还使用 Nano 文本编辑器从 Linux 命令窗口对该文件进行了编码,但是这在尝试通过 Crontab 运行 testit.py 文件时没有任何区别。因此,即使我直接在 Linux 服务器上编写 testit.py 代码,它也不会运行(以防 Windows 在我的文件中创建隐藏字符)。

最佳答案

  • cron 在有限的环境中运行命令。只有几个环境变量自动设置。它加载由 /etc/environment 指定的环境和 /etc/security/pam_env.conf,但与您的环境变量无关可能已在您的 .bashrc.profile 中设置。

    设置crontab入口

    *   *    *    *    *   /usr/bin/env > /tmp/out

    看看实际设置了哪些环境变量。拥有/tmp/out 后,不要忘记删除 crontab 条目。

  • 运行 Python 脚本时,一个重要的环境变量大概需要设置的是PYTHONPATH。所以在你的 crontab 的顶部添加一个PYTHONPATH 设置如:

    PYTHONPATH=/home/ftpuser/dev/mod_high_lows

    一定要添加包含f_file_handling模块的目录,这样Python 会在运行语句时找到模块

    import f_file_handling
  • 最后,还要注意 cron runs commands in your home directory默认情况下。然而,最好是明确的,并在您在脚本中指定文件时提供完整路径:

    f_file_handling.csv_out('/path/to/my_file_test',_data)

关于python - 使用 Crontab 运行简单的 Python 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32031111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com