2017-08-10 41 views
1

我正在使用Lua代码为我的小型项目工作使用资源管理器与esp8266模块进行交互。Dofile并需要问题

我遇到了“dofile”和“require”模块没有打开位于另一个位置的脚本的问题。

  1. 我用这样的代码:dofile("ds18b20.lua")

    输出:

dofile处理( “ds18b20.lua”)
不能打开ds18b20.lua

  • 我也用过:require("ds18b20")

    输出:
  • 要求( “DS18B20”)标准输入:1:模块 'DS18B20' 未找到:
    没有场package.preload [ 'DS18B20']
    没有文件 'ds18b20.lc'
    没有文件'ds18b20.lua'

    任何人都可以为我解决这个问题吗?

    谢谢

    +0

    为什么要标记'java'和'c'?他们与你的问题无关。 –

    +0

    你的电脑只是一个愚蠢的机器。如果你不告诉它到底在哪里找到那个文件,或者至少在哪里寻找它,它不会找到它并且责怪你。请遵循fonfonx建议或将路径添加到LUA_PATH环境变量。打印(package.path)以查看Lua将搜索哪个文件夹所需的文件。 – Piglet

    回答

    0

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

    如果你想使用require一个解决方案是增加

    package.path = package.path .. ";full/path/to/folder/?.lua" 
    require "script" 
    
    +0

    非常感谢,它的作品! – samy

    0

    要为require指定的地方脚本可以使用这样的事情:一个包含你的脚本包路径的文件夹

    require 'path.to.lib.libname.submodule'