为什么lua需要韩元';不搜索当前目录?

为什么lua需要韩元';不搜索当前目录?,lua,lua-5.3,Lua,Lua 5.3,假设我在test.lua文件夹中有两个文件test.lua和m.lua,如下所示: require("m") 然后我运行此文件,但它会引发错误: lua: /Users/xx/works/scripts/test.lua:43: module 'm' not found: no field package.preload['m'] no file '/usr/local/share/lua/5.3/m.lua' no file '/usr/local/share/lua

假设我在
test.lua
文件夹中有两个文件
test.lua
m.lua
,如下所示:

require("m")
然后我运行此文件,但它会引发错误:

lua: /Users/xx/works/scripts/test.lua:43: module 'm' not found:
    no field package.preload['m']
    no file '/usr/local/share/lua/5.3/m.lua'
    no file '/usr/local/share/lua/5.3/m/init.lua'
    no file '/usr/local/lib/lua/5.3/m.lua'
    no file '/usr/local/lib/lua/5.3/m/init.lua'
    no file './m.lua'
    no file './m/init.lua'
    no file '/usr/local/lib/lua/5.3/m.so'
    no file '/usr/local/lib/lua/5.3/loadall.so'
    no file './m.so'
正如您所看到的,
no file./m.lua'
行出现,但这不是真的
/m.lua
存在,并且文件权限内容正常。如果我硬编码路径:

package.path = package.path..';'..'/Users/xx/works/scripts/?.lua'
require('m')
它将按预期工作


当需要一个模块时,我应该怎么做才能使lua搜索当前目录(如python的导入)

当前目录是启动lua的目录


在您的示例中缺少命令行,如果您使用了
lua test.lua
那么它应该工作,如果您使用了
lua works/scripts/test.lua
那么它将不工作。

test.lua
m.lua
不在当前目录中,是吗?当前目录不是您的lua文件所在的目录。