模块未找到 - “xxx模块未找到” - Lua语言

如何使用此模块?

文件:Player.lua,我的模块

     local Player = {}
     local function funcPlayer()

        local player = {}
        local self = {name="", points = 0}

        local setPoints = function(newPoints)
          self.points = newPoints
        end

        local getPoints = function ()
          return self.points
        end

        local setName = function(newName)
          self.name = newName
        end

        local getName = function()
          return self.name
        end

        local f__tostring = function()
          return "(" .. self.name .. ", " .. self.points .. ")"
        end

        setmetatable(player, {
          __tostring = f__tostring
        })

        player.getPoints = getPoints
        player.setPoints = setPoints
        player.getName = getName
        player.setName = setName

        return player
    end

    Player = funcPlayer()
    return Player

请求此模块的文件:Players.lua

  local tabPlyer = require("Player")

错误信息:

[Running] lua "c:\Users\tct9\Documents\Lua\ScriptLua\Games\Players.lua"
lua: c:\Users\tct9\Documents\Lua\ScriptLua\Games\Players.lua:1: module 'Player' not found:
    no field package.preload['Player']
    no file 'c:\Users\tct9\Documents\Lua\lua\Player.lua'
    no file 'c:\Users\tct9\Documents\Lua\lua\Player\init.lua'
    no file 'c:\Users\tct9\Documents\Lua\Player.lua'
    no file 'c:\Users\tct9\Documents\Lua\Player\init.lua'
    no file '.\Player.lua'
    no file 'c:\Users\tct9\Documents\Lua\Player.dll'
    no file 'c:\Users\tct9\Documents\Lua\loadall.dll'
    no file '.\Player.dll'
    no file 'c:\Users\tct9\Documents\Lua\Player52.dll'
    no file '.\Player52.dll'
stack traceback:
    [C]: in function 'require'
    c:\Users\tct9\Documents\Lua\ScriptLua\Games\Players.lua:1: in main chunk
    [C]: in ?

如何使用此模块?

重要说明

我正在使用VSCode。

PATH 变量:...;C:\Users\tct9\Documents\Lua

变量 LUA_PATH:C:\Users\tct9\Documents\Lua

Moon Path:C:\Users\tct9\Documents\Lua

脚本路径:C:\Users\tct9\Documents\Lua\ScriptLua\Games

点赞
用户2858170
用户2858170

【运行中】lua “c:\ Users \ tct9 \ Documents \ Lua \ ScriptLua \ Games \ Players.lua” lua: c:\ Users \ tct9 \ Documents \ Lua \ ScriptLua \ Games \ Players.lua:1:找不到模块“Player”: 没有名为 package.preload \ ['Player'] 的字段 没有文件“c:\ Users \ tct9 \ Documents \ Lua \ lua \ Player.lua” 没有文件“c:\ Users \ tct9 \ Documents \ Lua \ lua \ Player \ init.lua” 没有文件“c:\ Users \ tct9 \ Documents \ Lua \ Player.lua” 没有文件“c:\ Users \ tct9 \ Documents \ Lua \ Player \ init.lua” 没有文件“。 \ Player.lua” 没有文件“c:\ Users \ tct9 \ Documents \ Lua \ Player.dll” 没有文件“c:\ Users \ tct9 \ Documents \ Lua \ loadall.dll” 没有文件“。 \ Player.dll” 没有文件“c:\ Users \ tct9 \ Documents \ Lua \ Player52.dll” 没有文件“。 \ Player52.dll”

这是Lua尝试查找的文件列表。如果您的Player.lua不在其中,则必须确保该文件在列出的某个路径中或者在要求它之前将包含文件的路径添加到“package.path”中。

要么手动从脚本中进行,要么将其添加到“LUA_PATH”中。

2020-06-10 06:00:52
用户9836176
用户9836176

我这样做:

print(package.path)

我发现 "C:\Users\tct9\Documents\Lua\?.lua"

然后我添加了到package.path:

package.path = package.path .. ";C:\\Users\\tct9\\Documents\\Lua\\ScriptLua\\Games\\?.lua"

这样模块就能正常工作了!

2020-06-10 18:47:01
用户12708419
用户12708419

对我来说,就是在模块名之前加上他的文件夹名,因为检索目录在他的上级目录。 像这样:

local tabPlyer = require("FolderName.Player")
2022-06-30 06:06:51