【问题标题】:Cron with beautifulsoup not running带有美丽汤的 Cron 没有运行
【发布时间】:2019-01-11 16:03:21
【问题描述】:

从终端执行时,Python 文件可以正常运行。

使用 cron 运行时出现错误“ImportError: No module named bs4”。

我正在从 /anaconda3/lib/python3.6 运行 python3.6

python3.6
>>> from crontab import CronTab
>>> cron = CronTab(user=True)
>>> job = cron.new(command='python /Users/X/Y/Z/Hello.py')
>>> job.minute.every(1)
>>> cron.write()

Hello.py 从 /anaconda3/lib/python3.6/site-packages/bs4/ 中的 bs4 调用 beautifulsoup

Cron 详细信息是:

X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>

【问题讨论】:

  • 你安装了多少个版本的python?您是否尝试过将 python 可执行文件的完整路径放入命令中?

标签: python beautifulsoup cron


【解决方案1】:

在导入bs4之前尝试将/anaconda3/lib/python3.6/site-packages/路径添加到sys.path

import sys
sys.path.append('/anaconda3/lib/python3.6/site-packages/')

PYTHONPATH添加到crontab环境中:

$ sudo crontab -e

PYTHONPATH=$PYTHONPATH:/anaconda3/lib/python3.6/site-packages/

【讨论】:

  • @the_it_crowd 你确定在/anaconda3/lib/python3.6/site-packages/ 中安装了 bs4 包吗?您是否添加了sys.path 的路径后导入了bs4?它应该工作。从终端运行脚本时尝试打印sys.path,并在从cron运行时进行比较。
  • 谢谢@Andrej Kesely。 Cron 和终端使用不同的 sys.paths - 一旦我修复了这些,它就起作用了!
猜你喜欢
  • 2016-09-26
  • 1970-01-01
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多