python - Python 脚本未在 ec2 实例中运行
问题描述
我有一个使用 ec2 实例中的用户数据运行的 shell 脚本。shell 脚本包含一个将视频分割成帧的 python 脚本。但是,即使我已将它们安装在实例中,此 python 脚本也无法导入所需的模块。启动实例后,我在 cloud-init-output.log 文件中收到以下错误。
Traceback (most recent call last):
File "frame_splitter.py", line 4, in <module>
import cv2
ModuleNotFoundError: No module named 'cv2'
Cloud-init v. 20.4.1-0ubuntu1~18.04.1 running 'modules:final' at Fri, 19 Mar 2021 11:09:20 +0000. Up 17.64 seconds.
当我直接执行 python 脚本时,它运行完美。当我通过用户数据的 shell 脚本运行它时,它只是没有运行。
用户数据代码如下
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/sh
cd /home/ubuntu
sh ./panorama.sh
我需要 3 个模块来运行代码(glob、cv2 和 os)
编辑
我在 cd/home/ubuntu 之后的用户数据中添加了 pip3 install --target ./package opencv-python 行
我在日志文件中有以下错误。
Collecting opencv-python
Downloading https://files.pythonhosted.org/packages/bb/08/9dbc183a3ac6baa95fabf749ddb531bd26256edfff5b6c2195eca26258e9/opencv-python-4.5.1.48.tar.gz (88.3MB)
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-xzoveeew/opencv-python/setup.py", line 10, in <module>
import skbuild
ModuleNotFoundError: No module named 'skbuild'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-xzoveeew/opencv-python/
Traceback (most recent call last):
File "frame_splitter.py", line 4, in <module>
import cv2
ModuleNotFoundError: No module named 'cv2'
解决方案
推荐阅读
- jhipster - 在具有 OAUTH2 基础安全性的单片 Jhipster APP 中公开 api
- javascript - 在 App.get 我想有两个不同的响应(渠道)
- python - 烧瓶记录到文件 - 在本地工作但不在服务器上
- installation - Librato 安装失败并显示“错误:读取配置文件失败!”
- asp.net - 该进程无法访问文件 web.config,因为它正被另一个进程使用
- javascript - 如何更改我的 JSON 的外观
- python - Python 请求 POST - 错误 400
- ios - Swift:实例成员不能用于 ARKitVision 示例中的类型
- java - 如何使用Java从特定日期减法
- javafx - 方法检查锁,在锁释放后运行