gpt4 book ai didi

ruby - 通过 ruby​​ PTY 与 Julia 通信

转载 作者:数据小太阳 更新时间:2023-10-29 08:04:10 25 4
gpt4 key购买 nike

我主要是想通过 stdin 将命令发送到 julia session 。谁能给我一些指示,说明为什么这段代码似乎从来没有在 Julia 这边执行任何事情?看起来命令被传递给了 julia,但从未真正运行过,或者 julia 从未将它的输出传递给输出流......我希望最终在这里的输出流中看到 4(2 + 2 的结果)...... . 有什么想法吗?

require 'pty'
require 'expect'

class Session
def initialize
@output, @input, @pid = PTY.spawn('julia -q')
end

def exec(cmd)
@input.write(cmd + "\n")
@output.each { |line| print line }
end
end

session = Session.new()
session.exec("2 + 2")

最佳答案

好吧,我想我明白发生了什么:

  1. 您需要给 julia 一些时间来启动。

  2. 您需要发送一个带有\n 的\r 来告诉 julia 阅读该行。

这对我有用:

require 'pty'
require 'expect'

class Session
def initialize
@output, @input, @pid = PTY.spawn('julia -q')
sleep 5
# @output.expect(/julia\>/) would be nicer!
end

def exec(cmd)
@input.write(cmd + "\r\n" # This is control-m
@output.each { |line| print line }
end
end

session = Session.new()
session.exec("2 + 2")

注意事项:

我认为使用 @output.expect("julia\>") 会更好,而不是笨重的 sleep 5。但 sleep 证明了它失败的原因。

关于ruby - 通过 ruby​​ PTY 与 Julia 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23976607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com