【发布时间】:2020-03-03 19:15:09
【问题描述】:
所以我有一个文件success.sh
python3 /home/ubuntu/foo.py
这在 Cron 中运行:
* * * * * /home/ubuntu/success.sh >> /tmp/cron_output
foo.py 是简单的
print("DSVSDVDSVSDFDS")
但是,一旦我尝试运行我真正想要运行的内容并将 success.sh 更改为以下内容:
cd "/home/ubuntu/Amazon to Ebay v1.7/Catalogue 2/" && python3 "/home/ubuntu/Amazon to Ebay v1.7/Catalogue 2/ebay-price-arbitrage-bot.py"
文件中没有记录输出...
我想知道它是否正在运行。为什么什么都没有输出?? success.sh 作为独立的运行良好...
编辑:
我已将我的 crontab 更改为以下内容:
* * * * * /home/ubuntu/success.sh > /tmp/cron_output 2>&1
所以它输出错误。现在它显示在我的 py 脚本中找不到模块。
Traceback (most recent call last):
File "/home/ubuntu/Amazon to Ebay v1.7/Catalogue 2/ebay-price- arbitrage-bot.py", line 23, in <module>
from paypal import PayPalInterface
ModuleNotFoundError: No module named 'paypal'
但它作为一个独立的工作正常,所以我不知道发生了什么。
【问题讨论】:
-
它只使用绝对路径,如上代码所示。
-
你的权利,这是一个错字。现在更正。
-
请贴出错误的全文。
-
@stark 完成。 //
-
当使用
import时,python在sys.path中寻找模块(import sys去sys.path)。如果您可以在一个环境(例如,命令行)中找到该模块,而在另一个环境(例如,cron 作业)中找不到它,那么sys.path在这两个环境中可能会有所不同。另请参阅PYTHONPATH环境变量。 Cron 作业通常具有非常小的环境(printenv和手册页会有所帮助)。