python - 在 Python 脚本中通过 ssh 调用 Python 会导致“非法指令(核心转储)”
问题描述
我有一个 Python 脚本call.py
通过 ssh 登录到另一台机器并执行保存在这台机器上的另一个 Python 脚本,类似这样
# call.py
import os
# log into user@host machine and execute python script
os.system("sshpass -p password ssh user@host '( python3 my_script.py )'")
但是当我尝试运行它时,我得到了这个错误
Illegal instruction (core dumped) ( python3 my_script.py )
我尝试了几件事:
- 如果我登录 ssh 并
python3 my_script.py
通过终端启动它可以工作 - 我还尝试在
call.py
没有 ssh 部分的情况下运行相同的脚本,因此尝试my_script.py
在同一台机器上启动并且它可以工作
似乎只有 python 中的 ssh + python 的组合才会给我这个错误。任何可能导致错误的指针将不胜感激。
编辑:我没有意识到它会起作用,但我现在添加目标机器是 Nvidia Jetson 板的重要细节。
解决方案
我找到了适合我的案例的解决方案,以防它可以帮助其他人。正如Thomas所指出的,问题在于我正在使用不同的系统,具体而言,我的目标机器是 Jetson,而我正在从笔记本电脑运行 ssh。
在我的 Jetson 板上,我Illegal instruction (core dumped)
在尝试导入 OpenCV 时看到过,解决方案export OPENBLAS_CORETYPE=ARMV8
是~/.bashrc
.
为了通过 ssh 完成这项工作,我不得不修改我的命令以这样调用 python:
OPENBLAS_CORETYPE=ARMV8 python3
现在它可以工作了!
推荐阅读
- c# - 使用 c# 将秒表注入使用 Mono.Cecil 的所有 dll 方法,包括具有多个 Return 语句的方法
- python - 将项目配置存储在环境变量中是一种不好的做法吗?
- javascript - 如何在“dompurify”中允许一个 iframe 标签,包括它的所有属性
- php - 在模式中使用 CodeIgniter is_unique 表单验证和 Postgres 表
- asp.net - 如何最好地保护 SQL Always Encrypted 的加密密钥
- c# - 如何从复杂的 JSON 格式文件 C# 中获取特定信息
- android - eglCodecCommon: setVertexArrayObject: 设置 vao 调试信息
- android - java.lang.IndexOutOfBoundsException:检测到不一致。使用 DiffUtil 时视图支架适配器无效
- java - 通过父类字段值反序列化带有 Jackson 的子类
- c# - 文件夹浏览器对话框初始文件夹