Lua require does not work but file is in the trace
我正在尝试在Lua中使用require命令引入文件,在某些情况下,它能正常工作,但是当我要简化LUA PATH中的要求时,文件就找不到了,但它在整个路径中!
为了复制我的require问题,我使用了package.searchpath函数进行测试,该函数使用所需的关键字和Lua路径作为参数。
所以代码如下:
print('MY LUA PATH')
local myLuaPath =“?;?。lua; D:\\ Projets \\ wow-addon \\ HeyThere \\?; D:\\ Projets \\ wow-addon \\ HeyThere \\ src \\ HeyThere \\?; D:\\ Projets \\ wow-addon \\ HeyThere \\ test \\ HeyThere \\? “
print(myLuaPath)
print('package search core.add-test')
print(package.searchpath('core.add-test',myLuaPath))
print('package search test.HeyThere.core.add-test')
print(package.searchpath('test.HeyThere.core.add-test',myLuaPath))
结果如下:
MY LUA PATH
?;?。lua; D:\\ Projets \\ wow-addon \\ HeyThere \\?; D:\\ Projets \\ wow-addon \\ HeyThere \\ src \\ HeyThere \\?; D:\\ Projets \\ wow-addon \\ HeyThere \\ test \\ HeyThere \\?
package search core.add-test
nil no file 'core\add-test'
no file 'core\add-test.lua'
no file 'D:\\ Projets \\ wow-addon \\ HeyThere \\ core \\ add-test'
no file 'D:\\ Projets \\ wow-addon \\ HeyThere \\ src \\ HeyThere \\ core \\ add-test'
no file 'D:\\ Projets \\ wow-addon \\ HeyThere \\ test \\ HeyThere \\ core \\ add-test'
package search test.HeyThere.core.add-test
test \\ HeyThere \\ core \\ add-test.lua
所以,第一次尝试使用'core.add-test'应该可以使用路径中的“D:\ Projets \ wow-addon \ HeyThere \ test \ HeyThere \?”,但实际上失败了......
在路径中,我想要的文件是存在的!
no file 'D:\ Projets \ wow-addon \ HeyThere \ test \ HeyThere \ core \ add-test'
但是,使用相同的LUA PATH,但从父文件夹开始,文件被找到了......第二次使用'test.HeyThere.core.add-test'从'D:\ Projets \ wow-addon \ HeyThere \?'发现
-> test \ HeyThere \ core \ add-test.lua
有人能解释一下为什么第一次不起作用吗?
EDIT :)
我的当前目录是D:\ Projets \ wow-addon \ HeyThere
我的lua.exe在D:\ Projets \ wow-addon \ HeyThere \ bin \ lua中,但添加到了我的PATH变量中(我在Windows上)
我设置了LUA_PATH环境变量并执行
lua "test\ test-suite.lua "-v
test-suite.lua中的代码是上面描述的测试代码
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

正如 @EgorSkriptunoff 建议的那样,将文件扩展名添加到路径中可以解决这个问题...
例如:
路径变量中应该包含扩展名,因为在 require 中,点被替换并用作文件夹分隔符。