当前位置: 首页 > 面试题库 >

找不到模块插槽

金成济
2023-03-14
问题内容

我正在尝试使用lua从nginx访问redis值。当我在命令行上执行lua文件时,一切正常,我能够读取和写入redis值。但是我尝试通过访问在其中写入access_by_lua指令的位置从nginx执行相同文件时,在错误日志文件中记录了以下错误

no field package.preload['socket'] 
no file '/home/sivag/redis/redis-lua/src/socket.lua'
no file 'src/socket.lua'
no file '/home/sivag/lua/socket.lua'
no file '/opt/openresty/lualib/socket.so'
no file './socket.so'
no file '/usr/local/lib/lua/5.1/socket.so'
no file '/opt/openresty/luajit/lib/lua/5.1/socket.so'
no file '/usr/local/lib/lua/5.1/loadall.so'

这是什么原因,我该如何解决?


问题答案:

您会收到此错误,因为您的代码执行了该命令。require("socket")
该命令将在几个目录中搜索具有该名称的文件。如果成功,内容将作为Lua代码执行。如果不成功,您将收到错误消息。

为了解决这个问题,您必须将包含文件的路径添加到系统变量 LUA_PATH,
或者必须将其添加到全局表,因为package.path您需要该文件。卢阿会取代吗?使用您给require()命名的名称

例如

package.path = package.path .. ";" .. thisPathContainsTheLuaFile .. "?.lua"

请阅读:

http://www.lua.org/manual/5.3/manual.html#pdf-
require

https://www.lua.org/pil/8.1.html



 类似资料:
  • 问题内容: 我最近在计算机上安装了cx_Oracle模块,以连接到远程Oracle数据库服务器。(我身边没有Oracle客户端)。 Python:2.7 x86版 Oracle:版本11.1.X x64 Cx_Oracle:版本5.1.2-11g.win32-py2.7 然后,每次我运行脚本时,脚本都会失败并显示以下消息: ImportError:DLL加载失败:找不到指定的模块。 我想知道是否我

  • 问题内容: 我收到错误,无法在Node.js应用程序中找到模块“ bcrypt” 我尝试使用 npm install bcrypt 安装它, 但仍然出现问题。 错误信息: 问题答案: 使用命令无法为我解决问题。 我尝试了以下命令,但问题解决了。

  • 问题内容: 我是Python的初学者。在开始之前,这是我的Python文件夹结构 在下面,我有一个名为的文件夹,其中有一个Python文件,其内容如下: 接下来,我位于文件夹中,位于上一级: 每当我运行它都会导致错误 我有什么想念的吗? 问题答案: Python中的所有模块都必须具有特定的目录结构。您可以在此处找到详细信息。 在目录下创建一个空文件,使您的目录结构如下所示: 同样在文件中,将imp

  • 我有个问题, 我试图在apple store上发布我的应用程序的新版本,但它给出了这个问题: 找不到模块“firebase_analytics” 有人经历过这个吗? 找不到模块“firebase_analytics”

  • 我试着在一个带有M1芯片的新Mac上建立一个现有的flutter项目。我面临以下错误:audio_session模块丢失。 有什么想法吗?

  • 问题内容: 我遵循pytest的良好做法,或者至少我 认为自己是 。但是,pytest找不到我的模块。它似乎没有在其中包含当前目录。 源文件: 测试文件: 并使用称为“ p3”的Python 3虚拟环境输出shell。 但是,运行以下命令确实可以正常工作。 我究竟做错了什么? 问题答案: 只需将一个空文件放在项目根目录中: 您的项目结构应变为: 此处发生的情况:发现a时,它将进行修改,以便可以从c