python - shell脚本不会更改目录并执行python脚本
问题描述
所以我有一个文件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'
但它作为一个独立的工作正常,所以我不知道发生了什么。
解决方案
Python 在当前目录和标准模块路径中查找模块。当您从 cron 运行时,该进程不在您的主目录中,因此需要添加路径。在 python 文件中执行:
import sys
sys.path.insert(0, "/path/to/your/paypal/module")
推荐阅读
- node.js - 将 REST 请求正文中的 multipart/form-data 文件转换为 Serverless Node.js 中的电子邮件附件格式
- python - 通过CP2102发送数据接收怪异数据
- android - Facebook“登录错误:登录此应用程序时出错。请稍后再试” - Ionic
- asp.net - 在 MapRoute 上有破折号或 url
- typescript - gulp 系统找不到指定的路径
- python - 如何修复无法正常工作的python请求
- javascript - 根据第一列中的值禁用表中的锚链接
- python - 在 Tensorflow 数据集管道中返回不同长度的数组
- multithreading - 我可以在`Inherited Create`之前做一些初始化吗?
- python - 从用户的时间线中提取推文的功能是循环一个