2013-02-15 50 views
3

在Lua中加載模塊後,我想確定它對應的模塊文件。在Python中,這樣做有如下代碼:確定模塊文件的位置

import module_name 
module_name.__file__ 

所以在Lua,如果我這樣做

require 'math' 

我該怎麼把旁邊,以確定該模塊在什麼位置?順便說一句,我實際上並不需要數學的位置,而是有一些其他的第三方軟件包被下載,並且想要知道當我調用Lua時實際使用的構建文件的副本。

回答

4

package庫可能會給你你需要的東西。

舉例來說,如果我在我的Lua路徑有util.lua,這樣我可以寫:

require 'util' 

我能得到的路徑,像這樣的文件:

print(package.searchpath('util', package.path)) 
+0

嗯,我想這與'數學',並得到了以下結果:「Lua 5.2.0版權所有(C)1994-2011 Lua.org,PUC-Rio >要求'包' >要求'數學' > print(package.searchpath('數學',package.path)) 無\t \t沒有文件 '/usr/local/share/lua/5.2/math.lua' \t沒有文件 '/usr/local/share/lua/5.2/math/init.lua' \t沒有文件「的/ usr /local/lib/lua/5.2/math.lua ' \t沒有文件 '/usr/local/lib/lua/5.2/math/init.lua' \t沒有文件' ./math.lua」 \t沒有文件'/usr/share/lua/5.2/math.lua' \t no file'/usr/share/lua/5.2/math/init.lua' \t no file'。/ math.lua'' 那是預期結果?似乎很奇怪,它說「沒有文件」在任何地方。 – gammapoint 2013-02-15 23:20:25

+0

此外,對不起,上述看起來如此可怕,猜測我不能在評論中做新行... – gammapoint 2013-02-15 23:23:54

+2

@gammapoint:'數學'不是一個普通的包。這是[Lua的一部分](http://www.lua.org/manual/5.2/manual.html#6.6)。它沒有位置;它已預先加載。這是一個內部模塊。試用一個外部模塊。 – 2013-02-16 01:26:52