使用 node exec 访问 python 文件中的函数
Use node exec to access a function in a python file
我是节点 child_process
的新手,我正在尝试执行 python 并将其结果返回给节点
我想使用 exec,不是执行一个简单的命令,而是访问一个 python 文件并执行它
说我的python.py
是
try :
import anotherPythonFile
print('hello2')
# anotherPythonFile.names().getNames()
except Exception as e :
print(e)
我尝试对此进行测试并返回 hello2
,但我什么也没得到
exec('D:\prjt\test\python.py', (er, stdout, stderr)=>{
console.log('exec test', stdout);
})
如果这有效,我将取消注释并执行 anotherPythonFile.names().getNames()
这里有什么错误?
此外,我可以直接访问 anotherPythonFile
并以某种方式设置我要执行的功能吗?我想做(例子)
exec('D:\prjt\test\anotherPythonFile.py.names().getNames()', (er, stdout, stderr)=>{
console.log('exec test', stdout);
})
这可能吗?
谢谢
下面是 运行 来自 Node.js 的 Python 脚本并读取其输出的示例:
hello.py
print("Hello from Python!")
main.js
const { spawn } = require('child_process');
const py = spawn('python3', ['/home/telmo/hello.py'])
py.stdout.on('data', (data) => {
console.log(`${data}`)
});
运行 node main.js
returns:
Hello from Python!
备选方案
您也可以使用 execFile
代替 spawn
:
const { execFile } = require('child_process');
const py = execFile('python3', ['/home/telmo/hello.py'], (error, stdout, stderr) => {
if (error || stderr) {
// Handle error.
} else {
console.log(stdout)
}
})
或exec
:
const { exec } = require('child_process');
const py = exec('python3 /home/telmo/hello.py', (error, stdout, stderr) => {
if (error || stderr) {
// Handle error.
} else {
console.log(stdout)
}
})
我是节点 child_process
的新手,我正在尝试执行 python 并将其结果返回给节点
我想使用 exec,不是执行一个简单的命令,而是访问一个 python 文件并执行它
说我的python.py
是
try :
import anotherPythonFile
print('hello2')
# anotherPythonFile.names().getNames()
except Exception as e :
print(e)
我尝试对此进行测试并返回 hello2
,但我什么也没得到
exec('D:\prjt\test\python.py', (er, stdout, stderr)=>{
console.log('exec test', stdout);
})
如果这有效,我将取消注释并执行 anotherPythonFile.names().getNames()
这里有什么错误?
此外,我可以直接访问 anotherPythonFile
并以某种方式设置我要执行的功能吗?我想做(例子)
exec('D:\prjt\test\anotherPythonFile.py.names().getNames()', (er, stdout, stderr)=>{
console.log('exec test', stdout);
})
这可能吗?
谢谢
下面是 运行 来自 Node.js 的 Python 脚本并读取其输出的示例:
hello.py
print("Hello from Python!")
main.js
const { spawn } = require('child_process');
const py = spawn('python3', ['/home/telmo/hello.py'])
py.stdout.on('data', (data) => {
console.log(`${data}`)
});
运行 node main.js
returns:
Hello from Python!
备选方案
您也可以使用 execFile
代替 spawn
:
const { execFile } = require('child_process');
const py = execFile('python3', ['/home/telmo/hello.py'], (error, stdout, stderr) => {
if (error || stderr) {
// Handle error.
} else {
console.log(stdout)
}
})
或exec
:
const { exec } = require('child_process');
const py = exec('python3 /home/telmo/hello.py', (error, stdout, stderr) => {
if (error || stderr) {
// Handle error.
} else {
console.log(stdout)
}
})