python - 如何在节点 js 服务器中运行 python 脚本?
问题描述
我想在我的节点 js 服务器上运行一个 python 脚本。我已经用 anaconda 安装了 python。这是我的第一种方法:
function runPy() {
const { spawn } = require('child_process');
const pyprog = spawn('python', ['--version']);
pyprog.stdout.on('data', function(data) {
console.log(`stoud: ${data}`);
});
pyprog.stderr.on('data', (data) => {
console.error(`stderr: ${data}`);
});
pyprog.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
}
runPy();
这是我得到的错误:
stderr: Python was not found; 使用 stderr: ut 参数运行
以从 Microsoft Store 安装,或从“设置”>“管理应用程序执行别名”禁用此快捷方式。
子进程以代码 9009 退出
然后我尝试使用 conda 创建一个环境,但我收到另一个错误:
function runPy() {
const { spawn } = require('child_process');
const pythonScript = 'faceMorph.py';
const envName = 'test';
const command = `conda run -n ${envName} python ${pythonScript}`;
const pyprog = spawn(command);
pyprog.stdout.on('data', function(data) {
console.log(`stoud: ${data}`);
});
pyprog.stderr.on('data', (data) => {
console.error(`stderr: ${data}`);
});
pyprog.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
}
runPy();
节点:事件:353 抛出 er;// 未处理的“错误”事件 ^
错误:
在
processTicksAndRejections
(节点: internal/process/task_queues:80:21)
在 ChildProcess 实例上发出“错误”事件:
在 Process.ChildProcess._handle.onexit (node:internal/child_process:282:12)
onErrorNT (node:internal/child_process:476: 16)
在 processTicksAndRejections (node:internal/process/task_queues:80:21) {
errno: -4058,
code: 'ENOENT',
syscall: 'spawn conda run -n test python faceMorph.py',
path: 'conda run - n 测试 python faceMorph.py',
spawnargs: [] }
解决方案
推荐阅读
- c# - Await Task.WhenAll(BatchList) - 代码在 Redis 缓存更新之前继续
- javascript - 如何从 React redux reducer 正确返回不可变数据
- java - 为什么 hashmap 的值没有用 getOrDefault 方法更新?
- python - Python - 将许多列表字典添加到持久主字典时的性能
- java - Redis 密钥过期通知
- python - Python MySql API
- python-3.x - 如何在启动时设置浏览器宽度/高度以及如何在开始时添加选项卡?ChromeDriver 硒 Python
- c# - 如何在 Unity 中对多个对象使用 MoveTowards 方法
- .net - 使用 VB.Net 将字符串上传到亚马逊 s3 存储桶
- javascript - 我不明白为什么 JavaScript 中的某个箭头函数的行为不像普通的