2012-08-08 57 views
11

我需要在lua文件上調用require,這個文件並不總是在同一個地方。我試圖在完整的路徑名稱上調用require,但這似乎並不奏效。我甚至嘗試用正確的完整路徑名稱替換我的工作正常的一個要求到同一個文件Lua需要完整路徑名稱的功能

例如改變 需要「富」 到 要求「C:\用戶\我\ MyLuaProject \富」

但是當我將它切換到完整路徑名稱時,它不能再找到它。所以我想知道你是否可以在完整路徑上調用require,如果不是,我會如何達到不同的結果?

回答

13

添加含有該文件的目錄package.path

package.path = package.path .. ";C:\\Users\\Me\\MyLuaProject" 
require "foo" 

你也可以把它添加到LUA_PATH環境變量,但是這可能是不容易上飛修改。

模塊的常見模式是使用abc.lua和abc/xyz.lua;要求在那樣的子目錄的文件,使用以下命令:

require "abc" 
require "abc.xyz" 
+0

你是一個天賜良機非常感謝你很多 – 2012-08-08 17:50:09

+0

我不得不添加一個問號作爲一個通用案例: package.path = package.path ..「;/path/to/module/?. lua」 但也許這是一個Linux的事情 – Luca 2017-05-16 12:07:30

13

如果你只需要加載一個文件,使用dofile,這需要一個路徑:

dofile("C:\\Users\\Me\\MyLuaProject\\foo")