我无法在NodeJS应用程序中使用< code>exec运行Conda命令。
var conda_path = '~/miniconda3/bin/conda'
var cmd = conda_path + ' init bash & ' + conda_path + ' activate XYZ'
exec(command,
function(error, stdout, stderr){
}
);
我收到以下错误:
/bin/sh: /用户/用户名/桌面/存储库/项目/XYZ: 是一个目录
命令未发现错误:您的 shell 未正确配置为使用“conda 激活”。要初始化您的 shell,请运行
$ conda init <SHELL_NAME>
目前支持的shell有:-bash-fish-tcsh-xonsh-zsh-powershell
请参阅“conda init --帮助”以获取更多信息和选项。
重要说明:您可能需要在运行“conda init”后关闭并重新启动 shell。
我在网上找不到关于从NodeJS应用程序运行conda命令的相关信息。
我怎样才能做到这一点?
使用< code >似乎可以工作
我还需要指定conda.sh
的路径,它位于/user/username/minicon da?? /etc/profile.d/
中。
此文件可以复制到任何位置,例如NodeJS应用程序的根文件夹。
以下是工作代码:
视窗 10
var commands = [
'C:\\anaconda\\Scripts\\activate.bat C:\\anaconda',
'conda activate XYZ_v0_1_env',
'XYZ arg1 <some_file_input> arg2 arg3 arg4 <some_file_output>',
]
exec(commands.join(' & '),
function(error, stdout, stderr){
console.log(error)
console.log(stdout)
console.log(stderr)
}
);
系统
const exec = require('child_process').exec;
var conda_path = __dirname + '/conda.sh'
var commands = [
conda_path,
conda_path + ' init',
conda_path + ' activate XYZ_v0_1_env',
'XYZ arg1 <some_file_input> arg2 arg3 arg4 <some_file_output>',
]
exec(commands.join(' & '),
function(error, stdout, stderr){
console.log(error)
console.log(stdout)
console.log(stderr)
}
);
编辑:使用生成
而不是exec
来读取进程的实时输出,即生成实时进度:
var commands = [
'C:\\anaconda\\Scripts\\activate.bat C:\\anaconda',
'conda activate XYZ_v0_1_env',
'XYZ arg1 <some_file_input> arg2 arg3 arg4 <some_file_output>',
]
var spawn_ = spawn(commands.join('&'), { shell: true });
spawn_.stdout.on('data', function (data) {
//do something
});
spawn_.stderr.on('data', function (data) {
//do something
});
spawn_.on('exit', function (code) {
//do something
});
Conda提供了conda run
命令,用于在环境中执行程序或运行脚本,而无需手动激活它。在您的情况下,您只需要一个命令,例如,
var conda_exec = "C:\\anaconda\\Scripts\\conda.exe"
var env_name = "XYZ"
var sub_cmd = "XYZ arg1 <some_file_input> arg2 arg3 arg4 <some_file_output>"
var command = [conda_exec, 'run', '-n', env_name, sub_cmd].join(" ")
...
请注意,conda 运行
当前直到最后才返回 I/O 结果。这意味着您将无法测量执行命令的进度,并且如果您期望获得大量回报(即,不适合内存),则不应使用它。
建议:考虑命名envXYZ_env
甚至包括版本控制(例如,XYZ_v0_1_env
),这样您就可以区分envXYZ
和程序XYZ
。
常用的命令行参数: --testnet: connect to MOAC testnet (networkid = 101); --rpc: initiate RPC service of HTTP, so as to nonlocally access the specific MOAC node service; --rpcaddr value: default as "localhost
问题内容: 有没有办法在Java应用程序中运行此命令行? 我可以用命令运行它,但是我不能在Java中运行它。 问题答案:
我的package.json看起来像: 我想运行的js脚本app.js.我不能直接使用节点app.js运行它,因为app.js包含新的语言语法。 因此,我必须按照上面定义的启动脚本,使用NPMStart通过babel运行它。这里没有问题。 我的问题是如何在命令行中直接运行cmd,可以吗?类似的东西: npm运行babel节点——预设环境应用程序。js
问题内容: 在groovy脚本中(用于jenkins管道):如何运行命令而不是命令? 我尝试了以下方法: 在通话中致电“ ” : 将呼叫替换为呼叫: 附加信息: 我的命令比命令更复杂。 问题答案: 您提供的Groovy脚本正在将结果脚本中的第一行格式化为空白行。shebang告诉脚本使用/ bin / bash而不是/ bin / sh运行,它需要位于文件的第一行,否则它将被忽略。 因此,您应该这
在一个节点中。js,我想找到一种获取Unix终端命令输出的方法。有没有办法做到这一点?
问题内容: 我在Node中编写一个Web应用程序。如果我有一些带有函数的JS文件,如何从命令行调用该函数? 问题答案: 对于您为什么要这样做,或者什么是更标准的做法,没有任何评论:这是您问题的解决方案…。请记住,命令行所需的引号类型可能会有所不同。 在您中,导出功能。有很多方法,但是例如: 然后假设您与命令提示符在同一目录中,然后这样调用它: 对于其他读者来说,OP的 功能可以被称为任何东西,这并