需要 lua 中具有不同文件名的包
require a package that has a different file name in lua
我对Lua很陌生,所以请原谅我的弱智问题。
关注 this tutorial 我正在尝试将 DeepMind dqn
导入 iTorch notebook。
我已经克隆了 this repo,其中包含一个名为 dqn
的文件夹,其中包含源代码。
我已经添加了 dqn
文件夹的路径
package.path = package.path .. ";/path/to/dqn/?.lua"
当我尝试做
require 'dqn'
我收到一个(预期的)错误,因为文件夹中没有名为 dqn.lua
的文件。实际上,此类模块的源代码包含在文件 NeuralQLearner.lua
中。
我看到 documentation 提示文件和包名称之间存在问题。
所以我的问题是:我怎样才能正确导入这个模块?我怎样才能让 Lua 知道 dqn
它实际上应该寻找 NeuralQLearner.lua
(我猜没有硬编码到路径中)?
诀窍在于:
if not dqn then
require 'initenv'
end
放入每个文件。 initenv
文件将定义 dqn
的含义。一旦 initenv
的路径是 package.path
,这似乎是克服限制的好技巧。
我对Lua很陌生,所以请原谅我的弱智问题。
关注 this tutorial 我正在尝试将 DeepMind dqn
导入 iTorch notebook。
我已经克隆了 this repo,其中包含一个名为 dqn
的文件夹,其中包含源代码。
我已经添加了 dqn
文件夹的路径
package.path = package.path .. ";/path/to/dqn/?.lua"
当我尝试做
require 'dqn'
我收到一个(预期的)错误,因为文件夹中没有名为 dqn.lua
的文件。实际上,此类模块的源代码包含在文件 NeuralQLearner.lua
中。
我看到 documentation 提示文件和包名称之间存在问题。
所以我的问题是:我怎样才能正确导入这个模块?我怎样才能让 Lua 知道 dqn
它实际上应该寻找 NeuralQLearner.lua
(我猜没有硬编码到路径中)?
诀窍在于:
if not dqn then
require 'initenv'
end
放入每个文件。 initenv
文件将定义 dqn
的含义。一旦 initenv
的路径是 package.path
,这似乎是克服限制的好技巧。