You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lua代码在Windows正常运行,Linux和Mac提示找不到模块如何解决?

Lua跨平台模块找不到问题的修复方案

你的问题根源是Lua模块查找路径的跨平台差异:Windows环境下,Lua默认会隐含将当前工作目录纳入模块查找路径,但Linux和Mac OS不会,导致无法找到同目录下的supermodule.lua。另外,Linux/Mac是大小写敏感系统,文件名大小写不匹配也会触发找不到模块的错误。

以下是具体修复方法:

方法1:显式将当前目录加入模块查找路径

在require语句前修改package.path,把当前目录添加到Lua的模块搜索路径中,写法跨平台兼容:

-- 把当前目录加入模块查找路径
package.path = package.path .. ";./?.lua"

local supermodule = require("supermodule")
local sp = supermodule.Test1
sp()

如果需要更严谨的跨平台写法(适配不同系统的路径分隔符),可以用package.config获取系统相关分隔符:

local path_sep = package.config:sub(1,1)
package.path = package.path .. path_sep .. "./?.lua"

local supermodule = require("supermodule")
local sp = supermodule.Test1
sp()

方法2:确保文件名大小写完全匹配

Linux和Mac OS区分文件名大小写,Windows不区分。如果你的模块文件实际是SuperModule.lua,但代码里写require("supermodule"),Windows能正常加载,但Linux/Mac会报错。请保证模块文件名(比如supermodule.lua)和require中的字符串完全一致。

方法3:确认文件位置与查找路径匹配

可以先打印当前Lua的模块查找路径,确认你的模块所在目录是否在其中:

print(package.path)

如果当前目录不在输出的路径中,除了方法1的修改方式,也可以把supermodule.lua移动到Lua默认搜索的目录下(比如系统级Lua模块目录,或用户目录下的Lua模块目录)。

内容的提问来源于stack exchange,提问作者Денис

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 12:37:20