Lua:模块&x27;castl.runtime';找不到

Lua:模块&x27;castl.runtime';找不到,lua,dependencies,castl,Lua,Dependencies,Castl,我是卢阿的新手。我使用以下方法将JS文件编译为lua 5.2: 这创建了一个名为script.js.lua的文件。这是我的新lua文件的第一行: local _ENV = require("castl.runtime"); 我尝试使用lua52 script.js.lua运行该文件,但出现以下错误: C:\Program Files\lua-5.2.4_Win64_bin\lua52.exe: script.js.lua:1: module 'castl.runtime' not found:

我是卢阿的新手。我使用以下方法将JS文件编译为lua 5.2:

这创建了一个名为script.js.lua的文件。这是我的新lua文件的第一行:

local _ENV = require("castl.runtime");
我尝试使用
lua52 script.js.lua运行该文件,但出现以下错误:

C:\Program Files\lua-5.2.4_Win64_bin\lua52.exe: script.js.lua:1: module 'castl.runtime' not found:
        no field package.preload['castl.runtime']
        no file 'C:\Program Files\lua-5.2.4_Win64_bin\lua\castl\runtime.lua'
        no file 'C:\Program Files\lua-5.2.4_Win64_bin\lua\castl\runtime\init.lua'
        no file 'C:\Program Files\lua-5.2.4_Win64_bin\castl\runtime.lua'
        no file 'C:\Program Files\lua-5.2.4_Win64_bin\castl\runtime\init.lua'
        no file '.\castl\runtime.lua'
        no file 'C:\Program Files\lua-5.2.4_Win64_bin\castl\runtime.dll'
        no file 'C:\Program Files\lua-5.2.4_Win64_bin\loadall.dll'
        no file '.\castl\runtime.dll'
        no file 'C:\Program Files\lua-5.2.4_Win64_bin\castl\runtime52.dll'
        no file '.\castl\runtime52.dll'
        no file 'C:\Program Files\lua-5.2.4_Win64_bin\castl.dll'
        no file 'C:\Program Files\lua-5.2.4_Win64_bin\loadall.dll'
        no file '.\castl.dll'
        no file 'C:\Program Files\lua-5.2.4_Win64_bin\castl52.dll'
        no file '.\castl52.dll'
stack traceback:
        [C]: in function 'require'
        script.js.lua:1: in main chunk
        [C]: in ?

我错过了什么?我使用的是Windows 10。

来回答您的问题

我错过了什么

您的问题是您使用了一个函数
require
,但您不知道该函数的作用。因此,您无法理解当它未能完成您期望它完成的任务时所抛出的错误

因此,首先请参阅Lua手册:

你会发现:

require
使用存储在中的路径搜索Lua加载程序 package.path。如果同样失败,它将使用 路径存储在package.cpath中。如果同样失败,它将尝试 一体式加载器(请参阅package.searchers)

require用于搜索Lua加载程序的路径

启动时,Lua使用 环境变量
LUA\u PATH\u 5\u 3
或环境变量
LUA\u PATH
或者使用luaconf.h中定义的默认路径,如果这些环境 未定义变量。任何

变量将替换为默认路径

补充阅读:

在任何网络搜索中输入“Lua require”也将为您的问题提供大量解决方案

正如hjpotter92在其评论中所述,除非文件已经位于默认文件夹中,否则您必须告诉计算机在何处查找您需要的文件。
在调用相应的require之前,将文件的位置添加到您的
LUA\u PATH
环境变量中,或者将其添加到
package.PATH
字符串中。

我会在这里留下答案,因为我相信提供的答案实际上对不了解LUA生态系统的人没有帮助

为了解决
要求(“castl.runtime”)
的问题,需要设置
LUA_路径
,在这种情况下,为了简单起见,假设
castl
发行版位于
/Users/me/castl
,那么您可以:

export LUA_PATH="/Users/me/castl/lua/?.lua"

现在,如果您运行Lua脚本,它将被正确执行

来自文档:一个Lua运行库(位于
Lua/castl/
),它允许执行由
castl.js
编译的代码。向环境的LUA_路径添加相同的变量,它应该会起作用。我可能只是没有正确理解您的说明,但我尝试在名为
LUA_路径
的环境变量对话框中添加一个新的用户变量,设置为
%USERPROFILE%\Desktop\repos\clones\castl\LUA\castl
。在此之后,我得到了相同的错误,除了错误只列出了
.dll
文件的“无文件”条目(不再有
.lua
文件)。因此,注意到没有环境变量lua正在
C:\Program files\ua-5.2.4\U Win64\U bin\lua\castl\
中搜索
runtime.lua
文件,我将castlrepo中的
lua
文件夹复制到该位置(
C:\ProgramFiles\lua-5.2.4\u Win64\u bin\
)。这似乎把我从这个错误转移到了另一个错误上……很抱歉,在Stackoverflow回答问题时,“在任何web搜索中输入”Lua require“不是一个好建议-这里的答案在某种程度上应该是自给自足的。@shabunc我的答案是自给自足的。你显然没读过。我详细地解释了是什么导致了他的问题,以及他如何解决这个问题。我甚至列举了几个参考资料。我甚至还解释了如何在不被别人利用的情况下获得这些信息。
export LUA_PATH="/Users/me/castl/lua/?.lua"