Message": "Command failed: cd /data/pubmed-search/NO_DELETE && python filter_iss...

2025年09月14日 00:44 响应: 2.69秒 状态: success

🚨 错误信息

{ "errorMessage": "Command failed: cd /data/pubmed-search/NO_DELETE && python filter_issn_to_pubmed_query.py \"/data/pubmed-search/retrieved_issns(20250913_163609)_information.csv\"--cas-zones \"1\" \"2\" \"3\" --if-min 3.0                                     \nusage: filter_issn_to_pubmed_query.py [-h]\n [--cas-zones CAS_ZONES [CAS_ZONES ...]]\n [--jcr-zones JCR_ZONES [JCR_ZONES ...]]\n [--if-min IF_MIN] [--if-max IF_MAX]\n [--output-md OUTPUT_MD]\n input_csv\nfilter_issn_to_pubmed_query.py: error: unrecognized arguments: 1 2 3                                    \n", "errorDetails": {}, "n8nDetails": { "nodeName": "生成information.md", "nodeType": "n8n-nodes-base.executeCommand", "nodeVersion": 1, "itemIndex": 0, "time": "2025/9/14 00:43:50", "n8nVersion": "1.107.4 (Self Hosted)", "binaryDataMode": "default", "stackTrace": [ "NodeOperationError: Command failed: cd /data/pubmed-search/NO_DELETE && python filter_issn_to_pubmed_query.py \"/data/pubmed-search/retrieved_issns(20250913_163609)_information.csv\"--cas-zones \"1\" \"2\" \"3\" --if-min 3.0                                     ", "usage: filter_issn_to_pubmed_query.py [-h]", " [--cas-zones CAS_ZONES [CAS_ZONES ...]]", " [--jcr-zones JCR_ZONES [JCR_ZONES ...]]", " [--if-min IF_MIN] [--if-max IF_MAX]", " [--output-md OUTPUT_MD]", " input_csv", "filter_issn_to_pubmed_query.py: error: unrecognized arguments: 1 2 3                                    ", "", " at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_1af219c3f47f2a1223ec4ccec249a974/node_modules/n8n-nodes-base/nodes/ExecuteCommand/ExecuteCommand.node.ts:102:12)", " at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_0c275070fd0434c00ffd62213b2bcae4/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1212:9)", " at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_0c275070fd0434c00ffd62213b2bcae4/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1582:27", " at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@1.30_0c275070fd0434c00ffd62213b2bcae4/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:2158:11" ] } }

🤖 AI解决方案

filter_issn_to_pubmed_query.py: error: unrecognized arguments: 1 2 3                                    
filter_issn_to_pubmed_query.py: error: unrecognized arguments: 1 2 3                                    

原因分析

--cas-zones 参数期望接收以空格分隔的单个值列表,但你传递了 "1" "2" "3",这被解释为多个独立的未识别参数。

解决方案

--cas-zones 参数的值合并成一个以空格分隔的字符串,或者使用列表形式传递。根据 usage 显示,--cas-zones 接收 CAS_ZONES [CAS_ZONES ...],意味着它可以接收一个或多个值。正确的写法是将所有值放在一个引号内,或者根据你脚本的具体解析逻辑进行调整。

修改命令为:

cd /data/pubmed-search/NO_DELETE && python filter_issn_to_pubmed_query.py "/data/pubmed-search/retrieved_issns(20250913_163609)_information.csv" --cas-zones "1 2 3" --if-min 3.0

或者,如果你的 filter_issn_to_pubmed_query.py 脚本是使用 argparsenargs='+',那么直接传递多个参数也是可以的,但需要确保 n8n 正确处理了空格:

cd /data/pubmed-search/NO_DELETE && python filter_issn_to_pubmed_query.py "/data/pubmed-search/retrieved_issns(20250913_163609)_information.csv" --cas-zones 1 2 3 --if-min 3.0

请检查你的 filter_issn_to_pubmed_query.py 脚本如何定义 --cas-zones 参数,并选择最适合的命令。通常,第一种将所有值包裹在单个引号内传递给参数的方式更安全。

预防措施

  • 命令行参数测试:在 n8n 中执行前,先在终端手动执行一次命令,确保参数解析正确。
  • 脚本参数定义检查:仔细阅读 filter_issn_to_pubmed_query.py 脚本中 argparse 或其他参数解析库对 --cas-zones 的定义,理解其期望的输入格式。