壳牌脚本赢得';t更改目录并执行python脚本

壳牌脚本赢得';t更改目录并执行python脚本,python,ubuntu,chron,Python,Ubuntu,Chron,所以我有一个文件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/Catalogu

所以我有一个文件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"
  * * * * * /home/ubuntu/success.sh > /tmp/cron_output 2>&1
文件中未记录任何输出

我想知道它是否真的在运行。为什么没有输出任何内容??success.sh作为一个独立程序运行良好

编辑:

我已将crontab更改为以下内容:

   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"
  * * * * * /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'
回溯(最近一次呼叫最后一次):
文件“/home/ubuntu/Amazon to Ebay v1.7/catalog 2/Ebay price-套利bot.py”,第23行,在
从paypal导入PayPalInterface
ModuleNotFoundError:没有名为“paypal”的模块

但是它作为一个独立的文件运行得很好,所以我不知道发生了什么。

因为您提到了python文件的完整路径,所以不需要对该路径执行cd操作

另外,你能检查一下路径是否正确吗?因为,&&operator的工作方式是只有在cd命令成功时才执行python3命令。因此,如果路径不正确,cd就会失败,python3永远不会执行


或者,您可以使用“;”而不是“&&”,它保证python3的执行,而不管“cd”命令的结果如何。

Python在当前目录和标准模块路径中查找模块。从cron运行时,进程不在主目录中,因此需要添加路径。在python文件中,执行以下操作:

import sys
sys.path.insert(0, "/path/to/your/paypal/module")

它只使用绝对路径,如上面代码所示。您的权利,这是一个打字错误。正在更正。请发布错误的全文。@stark完成//当使用
import
时,python在
sys.path
中查找模块(
import sys
以获取
sys.path
)。如果您可以在一个环境(例如命令行)中找到模块,而在另一个环境(例如cron作业)中找不到模块,则两个环境中的
sys.path
可能不同。另请参见
PYTHONPATH
环境变量。Cron作业通常有一个非常小的环境(
printenv
,手册页会有所帮助)。我已经按照您的建议进行了尝试,并删除了cd….我还为crontab中的任何错误添加了重定向….现在输出显示模块没有导入到我的py脚本中。但它作为一个独立软件运行良好!能否尝试为python3可执行文件提供绝对路径?看起来CRON环境无法找到python3可执行文件。