gpt4 book ai didi

lua - 如何在Lua中使用require来访问Luvit的内置模块?

转载 作者:行者123 更新时间:2023-12-03 04:18:30 25 4
gpt4 key购买 nike

我正在用于托管我的项目的 Ubuntu 16.04 服务器 VPS 上运行 Luvit 环境。这是我当前文件树的图像

project tree

我当前位于(通过 cd 命令)WrapperTest 文件夹中,并运行 main.lua 文件。这需要 net/socket 中的服务器文件。

感觉每次切换文件时Lua都会改变文件路径。网络是这个项目中必须的,我的文件甚至无法检测内置模块。

Luvit提供了许多内置模块如coro-http ,为Lua提供HTTP支持。

为什么当我需要不同的文件时,我无法检测到正常模块并且整个文件路径发生变化?

编辑:当我 require 'main'在WrapperTest中,成功requires WrapperTest/net/socket/server 。此服务器文件依赖于WrapperTest/net/内的“discordio.lua” 。 “discordio.lua”需要位于同一目录中的名为 http-lib 的文件路径为require "net/http-lib" 。上http-lib's第一行,它需要一个名为 coro-http 的模块它内置于 Luvit 的解释器中。这失败了,我不明白为什么。

堆栈跟踪(非官方,因为它是 Luvit 错误,而不是纯 Lua):

[string "bundle:deps/require.lua"]:278:
No such module 'net/discordio' in '/usr/local/WrapperTest/net/socket/server.lua'
./net/http-lib.lua:1: module 'coro-http' not found:

最佳答案

http是 Luvit 提供的内置库,镜像 http在 Node 中找到的库。

coro-http是一个可使用 Luvit 包管理器安装的辅助库,lit ,来自公共(public)包存储库。

$ lit install creationix/coro-http

lit install命令将下载该库并将其安装到名为 deps 的本地目录。

Luvit提供定制require其中应该在其搜索模式中包含deps(以及递归升序的deps目录)。

<小时/>

如果所有其他方法均失败,您可以尝试通过更改 package.path 来手动调整搜索路径。字段:

package.path = './deps/?.lua;' .. package.path

关于lua - 如何在Lua中使用require来访问Luvit的内置模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41970255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com