2017-08-10 40 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'