python - Python 包管理器和 Node.js
问题描述
我正在尝试使用 Node.js 编译 python 脚本。python 脚本包括我安装的一些模块。我的 python 包管理器是 Anaconda,所以我尝试提供以下{"shell":"path to anaconda prompt"}
选项:
var exec = require('child_process').exec;
exec('python hello.py',{"shell":"path to anaconda prompt"}, ..callback)
但是,我收到一个错误:
{ Error: spawn C:\Users\dream\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda3) ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:232:19)
at onErrorNT (internal/child_process.js:407:16)
at process._tickCallback (internal/process/next_tick.js:63:19)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:11)
at startup (internal/bootstrap/node.js:285:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:739:3)
errno: 'ENOENT',
code: 'ENOENT',
syscall:
'spawn C:\\Users\\dream\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Anaconda3 (64-bit)\\Anaconda Prompt (Anaconda3)',
path:
'C:\\Users\\dream\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Anaconda3 (64-bit)\\Anaconda Prompt (Anaconda3)',
spawnargs: [ '/d', '/s', '/c', '"python hello.py"' ],
cmd: 'python hello.py' }
stdout:
stderr:
我怀疑这是因为 Anaconda Prompt 只是一些奇怪的快捷方式,它为 cmd.exe 设置了一些变量(这是快捷方式指向的位置)。
所以我的问题:
我可以直接用 Node.js 调用 anaconda 提示符吗?pip 也有外壳吗?
打包程序(pip、anaconda)如何使 python 可以访问模块?-> 这是通过一些环境变量吗?
我可以像他们一样准备 cmd.exe 以使用 python 吗?
解决方案
我认为您不想调用 Anaconda 提示符。
只需调用 python: python print('hello')
。
如果您调用: 命令行会发生什么Anaconda Prompt (Anaconda3) print('hello')
?
(这应该是评论,但我不能评论。)
推荐阅读
- node.js - 在 fastify 中使用通配符路由
- python - 如何在 Python 包中包含 tar.gz 文件?
- google-cloud-platform - 使用谷歌云功能记录文件下载并将文件下载到客户端
- graphql - 无法为graphql中的不可空字段返回null
- laravel - 是否可以在用户使用一次后不允许用户访问 Create CRUD?
- rust - Why is there is no dedicated method for creating a String from a UTF8-encoded array?
- c# - What is the proper way of handling object reference when applying projections in EF Core?
- linux - HAProxy reqrep 请求操作
- android - 如何在 android studio 的 avd manager 操作选项中启用灰色停止按钮?
- javascript - Automatically pass caller's scope property as argument in class constructor or method