Lua 的 require 在目录上不起作用。

我从我的教授那里得到了一些lua作业的骨架代码。 该代码有几个要求语句,将包添加到当前目录。 我遇到的问题是,其中许多要求语句不是要求.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将其所有文件加载到单个名称中以供以后引用)。

点赞
用户1847592
用户1847592
  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

2013-03-09 23:20:20