после загрузки модуля в Lua, я хотел бы определить, какой файл модуля ему соответствует. В Python, вы делаете это с кодом, как:Определить местоположение файла модуля
import module_name
module_name.__file__
Так в Lua, если я что-то вроде
require 'math'
, что я кладу рядом, чтобы определить, где этот модуль находится? Кстати, мне действительно не нужно место математики, но вместо этого есть некоторые другие сторонние пакеты, которые были загружены, и вы хотите знать, какая копия файлов сборки фактически используется, когда я вызываю Lua.
Хм, я попытался это с «математикой» и получил следующий результат: «Lua 5.2.0» Copyright (C) 1994-2011 Lua.org, PUC-Rio > require 'package' > require 'math' > print (package.searchpath (' math ', package.path)) nil \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 нет файла '/usr/share/lua/5.2/math/init.lua' \t нет файла './math.lua'' Является ли это тем, ожидаемый результат? Кажется странным, что он говорит «нет файла» где-либо. – gammapoint
Кроме того, извините, что выше выглядит так страшно, думаю, я не могу делать символы новой строки в комментариях ... – gammapoint
@gammapoint: «math» не является нормальным пакетом. Это [пакет, который является частью Lua] (http://www.lua.org/manual/5.2/manual.html#6.6). У него нет места; он предварительно загружен. Это внутренний модуль. Попробуйте его с помощью внешнего модуля. –