You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js调用Python脚本报错:如何修改python-shell的Python版本?

解决python-shell默认使用Python 2.7的问题

嘿,这个坑我之前踩过!python-shell默认会调用系统里的python命令,而很多系统里这个命令指向的是Python 2.7,这就导致你的Python 3.x语法直接报错了。要切换到Python 3其实很简单,只需要在调用时指定Python 3的可执行文件路径就行,下面给你两种具体的实现方式:

1. 单次调用时指定Python路径

在调用PythonShell.run()的时候,通过options参数传入pythonPath配置,指向你的Python 3可执行文件路径。比如:

const { PythonShell } = require('python-shell');

// 配置选项,指定Python 3的路径
const options = {
  pythonPath: '/usr/bin/python3' // 替换成你系统中Python3的实际路径
};

PythonShell.run('你的脚本.py', options, function (err, results) {
  if (err) throw err;
  console.log('脚本执行结果:', results);
});

怎么找Python3的路径?

  • 在Linux/macOS终端里输入 which python3,就能得到绝对路径
  • 在Windows命令提示符里输入 where python3,会列出所有可用的Python3路径,选你需要的那个就行

如果你的系统里直接输入python3就能启动Python 3,那也可以直接写pythonPath: 'python3',不用绝对路径,这样更灵活。

2. 全局默认设置Python版本

如果你的项目里所有Python脚本都需要用Python 3,可以直接设置PythonShell的全局默认选项,这样后续所有调用都会自动使用Python 3:

const { PythonShell } = require('python-shell');

// 全局设置默认Python路径
PythonShell.defaultOptions.pythonPath = '/usr/bin/python3';

// 之后的调用就不用再单独指定了
PythonShell.run('你的脚本.py', function (err, results) {
  if (err) throw err;
  console.log('脚本执行结果:', results);
});

最后提醒一下:确保你的系统已经安装了Python 3,并且指定的路径是正确的,不然会出现“找不到可执行文件”的错误哦。

内容的提问来源于stack exchange,提问作者Neel Kapadia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:56:03