gpt4 book ai didi

lua - 如何使用交互式 lua 或 torch session 正确地要求 lua 包?

转载 作者:行者123 更新时间:2023-12-04 02:17:16 27 4
gpt4 key购买 nike

一般来说,我在安装和要求软件包时遇到困难。例如,对于 inspect.lua 包,我首先按照包中的说明通过 luarocks 安装 ( https://github.com/kikito/inspect.lua ):

luarocks install inspect

然后,如果我启动 lua 或 torch7 (th),我将通过以下方式要求它:

local inspect = require 'inspect'

此检查变量始终为 nil:

require 'inspect'; print(inspect)

返回nil

最初,我不确定它是否返回了 nil,所以当我尝试时,例如 inspect(1),我会得到错误“attempt to调用全局“检查”(零值)”。

使用 torch,我似乎可以成功地使用“import 'inspect'”,尽管我不确定为什么这行得通而 require 却行不通。

我做错了什么?

最佳答案

发现归功于 @siffiejoe

Lua 解释器以 block 的形式工作。每个 block 都被视为一个单独的执行集。因此,如果你写:

local a = 5
local b = a

在一个文件中,它会正确地设置b 等于5,因为一个lua 文件被视为一个大块。但是,在 REPL 中,在清除第一行局部变量之后。

这只是意味着您应该将您的代码强制到一个 block 中:

do local inspect = require 'inspect'; print(inspect) end

或者使用一个跨 block 执行的全局变量:

$ inspect = require 'inspect'
$ print(inspect)

关于lua - 如何使用交互式 lua 或 torch session 正确地要求 lua 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33153362/

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