Dofile 和 require 问题

我正在使用 Lua 代码用于我的小型项目工作,使用 Explorer 与 esp8266 模块交互。

我遇到了一个问题,即 "dofile" 和 "require" 模块不能打开位于另一个位置的脚本。

  1. 我使用以下代码: dofile("ds18b20.lua")

    输出:

dofile("ds18b20.lua")

无法打开 ds18b20.lua

  1. 我还使用了:require("ds18b20")

    输出:

require("ds18b20") stdin:1: module 'ds18b20' not found:

找不到字段 package.preload['ds18b20']

没有文件 'ds18b20.lc'

没有文件 'ds18b20.lua'

能否有人给我解决这些问题的解决方案?

谢谢

点赞
用户3754413
用户3754413

如果脚本不在与当前脚本相同的文件夹中,您可以使用 dofile 并附带脚本的路径:dofile("path/to/your/script.lua")

如果您想使用 require,一个解决方案是将包含您的脚本的文件夹添加到 package.path 中:

package.path = package.path .. ";full/path/to/folder/?.lua"
require "script"
2017-08-10 23:07:40
用户5697743
用户5697743

为了指定 require 所需的脚本位置,您可以使用类似于以下的语法:

require 'path.to.lib.libname.submodule'
2017-08-16 09:04:18