Lua require 不适用于目录

标签 lua

我的 lua 教授给了我一些作业的骨架代码。该代码有几个将包添加到当前目录的 require 语句。我遇到的问题是,许多 require 语句不需要 .lua 文件,它们需要一个包含许多 lua 文件的目录。例如,我有一个目录 qtwidget,其中包含一个文件:init.lua

在框架代码中,这个包是这样引用的:

local w = qtwidget.newwindow(width,height,"Energy surface")

所以这一切都很好,但是当我运行骨架代码时,我收到以下错误:

dofile('/data/mar608/BigData/src/optim/demo2.lua')
error loading module 'qttorch' from file '/usr/local/pkg/torch/share/torch/lua/qttorch':
cannot read /usr/local/pkg/torch/share/torch/lua/qttorch: Is a directory
stack traceback:
[C]: ?
[C]: in function 'require'
/data/me/BigData/src/optim/demo2.lua:36: in main chunk
[C]: in function 'dofile'
[string "dofile('/data/mar608/BigData/src/optim/demo..."]:1: in main chunk
[C]: ?

发生什么事了?为什么lua不理解这个require语句?有什么方法可以让我的 package.path 变量能够解决这个问题?我需要能够对许多目录执行此操作(即指定目录名称并让 lua 将其所有文件加载到单个名称中以便稍后引用)

最佳答案

1) 你有/usr/local/pkg/torch/share/torch/lua/qttorch/init.lua吗?
2) package.path 中有 .../?/init.lua 条目吗?
示例:/usr/local/share/lua/5.2/?.lua;/usr/local/share/lua/5.2/?/init.lua;/usr/local/lib/lua/5.2/?。 lua;/usr/local/lib/lua/5.2/?/init.lua;./?.lua.

关于Lua require 不适用于目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15316828/

相关文章:

lua - 条件评估不正确(Lua 4)

awesome-wm - 在 awesome-wm 中为特定应用程序设置窗口布局

android - Lua 可以单独用于应用程序开发吗?

error-handling - Lua : pcall() doesn't work with coroutine as expected

loops - 在 Lua 中循环遍历数组值

lua - 如何创建在调用某个函数时调用函数的函数?

python - 使用python中的subprocess模块​​通过命令行输入运行lua脚本

lua - Corona SDK(LUA) - 尝试调用 upvalue 'spawnEnemy'(零值)

windows - 如何在 luasocket 3 中使用 Lua 5.2

dictionary - 您是否可以在lua表中使用数字键?