Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 5.3认为socket.Lua不';不存在于实际存在的目录中_Lua_Luarocks - Fatal编程技术网

Lua 5.3认为socket.Lua不';不存在于实际存在的目录中

Lua 5.3认为socket.Lua不';不存在于实际存在的目录中,lua,luarocks,Lua,Luarocks,以下是一个屏幕截图: 我希望能为开源游戏的开发提供乐趣,但这个问题阻碍了我这么做 我的LuaRocks安装是为Lua5.3配置的,并设置为使用MinGW的构建工具。我的操作系统是Windows 10 64位 我的Lua5.3.2二进制文件由网站(Lua-5.3.2_Win64_bin.zip)提供 如果您对可能的原因有想法,请发布。您必须手动解决环境变量: (varname) 返回流程环境变量varname的值,或nil 如果变量没有定义 因此,在您的情况下,需要首先获取%APPDATA%路径

以下是一个屏幕截图:

我希望能为开源游戏的开发提供乐趣,但这个问题阻碍了我这么做

我的LuaRocks安装是为Lua5.3配置的,并设置为使用MinGW的构建工具。我的操作系统是Windows 10 64位

我的Lua5.3.2二进制文件由网站(Lua-5.3.2_Win64_bin.zip)提供


如果您对可能的原因有想法,请发布。

您必须手动解决环境变量:

(varname)

返回流程环境变量varname的值,或nil 如果变量没有定义

因此,在您的情况下,需要首先获取%APPDATA%路径:

os.getenv("APPDATA")
返回:C:\Users\USERNAME\AppData\Roaming

在搜索要加载的包时,Lua使用预定义的文件夹列表进行搜索。此列表定义为分号分隔的(;)字符串。若要添加新文件夹,必须将其路径附加到package.path:

最后,您的完整解决方案是:

package.path = package.path .. ";" .. os.getenv("APPDATA") .. "\\luarocks\\share\\lua\\5.3\\?.lua"
local s = require("socket")

您必须手动解析环境变量:

(varname)

返回流程环境变量varname的值,或nil 如果变量没有定义

因此,在您的情况下,需要首先获取%APPDATA%路径:

os.getenv("APPDATA")
返回:C:\Users\USERNAME\AppData\Roaming

在搜索要加载的包时,Lua使用预定义的文件夹列表进行搜索。此列表定义为分号分隔的(;)字符串。若要添加新文件夹,必须将其路径附加到package.path:

最后,您的完整解决方案是:

package.path = package.path .. ";" .. os.getenv("APPDATA") .. "\\luarocks\\share\\lua\\5.3\\?.lua"
local s = require("socket")

“Lua不展开package.path中的环境变量引用,因此%APPDATA%将不起作用。您需要实际路径。Luarock安装脚本应该说:“请注意,上面路径中的%APPDATA%元素是特定于用户的,必须由其实际值替换。”-siffiejoe

”Lua不展开package.path中的环境变量引用,因此%APPDATA%将不起作用。你需要真正的路径。Luarock安装脚本应该说:“请注意,上面路径中的%APPDATA%元素是特定于用户的,必须由其实际值替换。”-siffiejoe

Lua不会在
package.path
中展开环境变量引用,因此
%APPDATA%
将不起作用。你需要真正的路径。Luarock安装脚本应该说:“请注意,上面路径中的%APPDATA%元素是用户特定的,必须用其实际值替换。”感谢您的帮助,我的Lua解释器现在可以找到socket.Lua.Lua在
包.path
中不展开环境变量引用,因此,
%APPDATA%
将不起作用。你需要真正的路径。Luarock安装脚本应该说:“请注意,上面路径中的%APPDATA%元素是用户特定的,必须用其实际值替换。”感谢您帮助我筛选Joe,我的Lua解释器现在可以找到socket.Lua。感谢您尝试帮助我BotOfWar,但目录socket.Lua位于,已经在我的Lua模块搜索路径中,因为我有一个Lua_path环境变量,正如我在安装Luarock时被Luarock指示的那样。我还定义了一个LUA_CPATH环境变量。在我提供的一个链接的屏幕截图中,控制台输出显示Lua试图在其所在的目录中查找socket.Lua,但由于某种原因失败。所以我担心我的电脑上可能有恶意软件,因为我想不出另一种解释来解释为什么会发生这种情况。@Joe912与Windows的cmd不同,Lua不会将%APPDATA%转换为C:\Users\USERNAME\APPDATA\Roaming这样的真实完整路径,因此:%APPDATA%\LuaRocks\share\Lua\5.3\socket.Lua不存在!C:\Users\USERNAME\AppData\Roaming\LuaRocks\share\lua\5.3\socket.lua不存在。您必须将“%APPDATA%”自己“转换为有效路径。感谢您尝试帮助我实现这两个目的,但目录socket.lua在中,已经在我的lua模块搜索路径中,因为我有一个lua_path环境变量,正如LuaRocks在安装它时指示我做的那样。我还定义了一个LUA_CPATH环境变量。在我提供的一个链接的屏幕截图中,控制台输出显示Lua试图在其所在的目录中查找socket.Lua,但由于某种原因失败。所以我担心我的电脑上可能有恶意软件,因为我想不出另一种解释来解释为什么会发生这种情况。@Joe912与Windows的cmd不同,Lua不会将%APPDATA%转换为C:\Users\USERNAME\APPDATA\Roaming这样的真实完整路径,因此:%APPDATA%\LuaRocks\share\Lua\5.3\socket.Lua不存在!C:\Users\USERNAME\AppData\Roaming\LuaRocks\share\lua\5.3\socket.lua不存在。您必须自己将“%APPDATA%”转换为有效路径。