使用json2html转换JSON到HTML时遇fork/exec格式错误求助
解决json2html脚本执行时的"exec format error"问题
一、先解决执行格式错误的核心问题
fork/exec /home/sftp_user/uploads/json2html.py: exec format error是Linux系统执行脚本时的典型问题,按以下步骤排查:
给脚本添加可执行权限
运行命令赋予脚本执行权限:chmod +x /home/sftp_user/uploads/json2html.py修复Shebang行的格式问题
- 检查脚本是否带有Windows换行符:如果脚本是在Windows下编辑的,换行符会是
\r\n,而Linux仅识别\n,导致系统无法解析开头的#!/usr/bin/env python3。用dos2unix转换:dos2unix /home/sftp_user/uploads/json2html.py - 确认系统中存在python3:执行
which python3,如果无输出,说明需要安装python3,或者将Shebang行改为系统中python3的实际路径(比如#!/usr/bin/python3)。
- 检查脚本是否带有Windows换行符:如果脚本是在Windows下编辑的,换行符会是
二、修复脚本代码里的逻辑错误
解决执行问题后,你的脚本会触发NameError,因为代码里存在导入和调用不匹配的问题:
你已经写了from json import loads,但后续调用的是json.loads(sys.argv[1]),此时json模块并未被导入,两种修改方式选其一:
- 直接使用导入的
loads方法:ip = loads(sys.argv[1]) - 改为导入整个
json模块:import json # 保留原调用代码 ip = json.loads(sys.argv[1])
测试建议
可以先绕开Shebang,直接用python3执行脚本验证逻辑:
python3 /home/sftp_user/uploads/json2html.py '[{"FirstName": "John", "LastName": "Doe"...}]'
内容的提问来源于stack exchange,提问作者amitz27
相关产品推荐
相关产品推荐

