为什么lua不会搜索当前目录?

问题描述 投票:1回答:1

说我在一个文件夹中有两个文件test.luam.lua,在test.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-5.3
1个回答
2
投票

当前目录是您启动lua的目录。

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

© www.soinside.com 2019 - 2024. All rights reserved.