2

luaの教授から課題のスケルトンコードが渡されました。コードには、現在のディレクトリにパッケージを追加するrequireステートメントがいくつかあります。私が抱えている問題は、これらのrequireステートメントの多くが.luaファイルを必要とせず、多くのluaファイルを含むディレクトリを必要とすることです。たとえば、ディレクトリqtwidgetには、init.luaという1つのファイルが含まれています。

スケルトンコードでは、このパッケージは次のように参照されます。

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つの名前にロードして、後で参照できるようにする)

4

1 に答える 1

3

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.

于 2013-03-09T23:20:20.427 に答える