我正在虚拟机上工作,即使我已经安装了 pandas 并且我可以直接运行代码,如下所示,我也无法使用 cron 调度程序运行 python 代码,而不会出现与 import pandas as pd 错误相关的错误。
直接执行代码即可按预期工作,这意味着 pandas 已安装。
(myenv) (base) virtual-machine:~/myenv$ ./camera_job_run.sh
Copying gs://fi-local-camera-startup/localcamerastartup.py...
/ [1 files][ 2.7 KiB/ 2.7 KiB]
Operation completed over 1 objects/2.7 KiB.
[1464 rows x 7 columns]
Data written to development.test.camera successfully.
(myenv) (base) virtual-machine:~/myenv$ `
这是我的代码
camera_job_run.sh
。我正在从云存储桶复制 python 文件。
GNU nano 7.2 camera_job_run.sh
#! /bin/bash
gsutil cp gs://local-camera/localcamerastartup.py /home//myenv
python3 /home//myenv/localcamerastartup.py`
这是我的 cron 作业代码
*/5 * * * * /home//myenv/camera_job_run.sh >> /home//myenv/camera_logfile.log 2>&1
该文件预计每 5 分钟运行一次,并且它正在运行,但是,我收到与 import pandas 相关的错误消息。 我不明白为什么当我执行代码时它直接工作但使用 cron 计划却出现错误。
Copying gs://local-camera/localcamerastartup.py...
/ [0 files][ 0.0 B/ 2.7 KiB] ^M/ [1 files][ 2.7 KiB/ 2.7 KiB]
Operation completed over 1 objects/2.7 KiB.
Traceback (most recent call last):
File "/home//myenv/localcamerastartup.py", line 3, in <module>
import pandas as pd
ModuleNotFoundError: No module named 'pandas't`
谢谢
我尝试过安装 pandas 并直接运行代码
我的第一个猜测是你没有全局安装 pandas。但你不应该这样做。使用 virtualenv 代替。然后在 shell 脚本中使用虚拟环境解释器。所以假设你在 Linux 上并创建这样的虚拟环境
python3 -m venv venv
运行 python 脚本时,您可能想在 bash 脚本中指定解释器的路径
./path/to/venv/bin/python3 localcamerastartup.py