Lua中require函数无法找到模块文件问题求助
解决Lua中
require无法找到模块的问题 嘿,我来帮你搞定这个require找不到模块的问题!首先得明白Lua的require是怎么工作的——它只会在预设的模块搜索路径里找文件,路径不对或者文件名有问题,自然就找不到啦。咱们一步步来排查:
最常见的修复步骤
1. 先核对文件名和位置
首先,你的模块文件必须命名为kek13.lua(得带.lua后缀!Lua默认只会找带这个后缀的模块文件),并且要和调用它的kek13Part2Real.lua放在同一个文件夹里。
如果你的模块文件存放在子文件夹(比如modules文件夹),那得告诉Lua去哪里找它,往下看第二种方法~
2. 手动添加模块路径到Lua搜索列表
如果模块和脚本不在同一目录,你可以在调用require之前,把模块所在目录加入package.path(Lua的模块搜索路径变量)。比如你的kek13.lua在./modules文件夹下,就这么改kek13Part2Real的代码:
print("===========================") -- 先把模块所在目录添加到搜索路径 package.path = package.path .. ";./modules/?.lua" local dad = require("kek13") print(dad.hi("A")) print(dad.add(...))
这里的?.lua是占位符,Lua会自动把require里的kek13替换进去,变成./modules/kek13.lua去查找。
3. 确认模块本身没有问题
你的kek13模块代码是没问题的——最后正确返回了test表,这样require才能拿到模块里的add和hi函数。不过可以顺手检查下模块有没有语法错误(比如少写了end),语法错误有时候也会伪装成“找不到模块”的错误哦。
测试一下
当你把模块放对位置、文件名改对之后,运行脚本的时候记得给dad.add(...)传两个数字参数(比如在命令行输入lua kek13Part2Real.lua 10 20),就能得到这样的输出:
=========================== my name is A 30
内容的提问来源于stack exchange,提问作者Paul Quinn
相关产品推荐
相关产品推荐

