我从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不理解这个要求声明?有什么方法我需要机会我的package.path变量来解决这个问题吗?我需要能够为许多目录执行此操作(即指定目录名称并让lua将其所有文件加载到一个名称中以便稍后引用)
答案 0 :(得分:2)
1)你有/usr/local/pkg/torch/share/torch/lua/qttorch/init.lua
吗?
2)您是否.../?/init.lua
进入package.path
?
示例:/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
。