需要一个在lua中具有不同文件名的包。

我非常新于Lua,所以请原谅这个愚蠢的问题。

在遵循这个教程的过程中,我正在尝试将DeepMind中的dqn导入iTorch笔记本中。

我已经克隆了这个仓库,其中包含一个名为dqn的文件夹,其中包含源代码。

我已经将路径添加到dqn文件夹

package.path = package.path .. ";/path/to/dqn/?.lua"

当我尝试执行

require 'dqn'

我会得到(预计的)错误,因为文件夹中没有名为dqn.lua的文件。实际上,这种模块的源代码包含在文件NeuralQLearner.lua中。

我见过了文档,它暗示了文件和包名之间的问题。

所以我的问题是:我该如何正确地导入此模块?如何让Lua知道它实际上应该寻找NeuralQLearner.lua(没有硬编码进路径,我猜)?

点赞
用户2397318
用户2397318

这个技巧在于:

if not dqn then
    require 'initenv'
end

需要放在每个文件中。initenv文件将定义dqn的含义。一旦路径包含了initenv,这似乎是一个很好的解决限制的技巧。

2015-12-09 01:54:38