簡體   English   中英

Lua 5.3認為socket.lua在實際存在的目錄中不存在

[英]Lua 5.3 thinks socket.lua doesn't exist in a directory where it actually does exist

這是屏幕截圖: https : //drive.google.com/open?id=0B4Dqo44FM648VTVKVzBKSERldGc

我想為開源游戲的開發做出貢獻,但是這個問題使我無法這樣做。

我的LuaRocks安裝已針對Lua 5.3配置,並設置為使用MinGW的構建工具。 我的操作系統是Windows 10 64位。

我的Lua 5.3.2二進制文件由網站提供(lua-5.3.2_Win64_bin.zip)。

如果您有可能的原因的想法,請發布它。

您必須手動解析環境變量:

os.getenv變量名

返回流程環境變量varname的值;如果未定義該變量,則返回nil。

因此,您需要先獲取%APPDATA%路徑:

os.getenv("APPDATA")

返回值:C:\\ Users \\ USERNAME \\ AppData \\ Roaming

當搜索要加載的軟件包時,Lua使用預定義的文件夾列表進行搜索。此列表在package.path中定義,它是一個以分號分隔(;)的字符串。 要添加新文件夾,必須將其路徑附加到package.path

package.path = package.path .. ";" .. NEWFOLDER .. "\\?.lua"

最后,完整的解決方案是這樣的:

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

“ Lua不會在package.path中擴展環境變量引用,因此%APPDATA%將不起作用。您需要真實的路徑。LuaRocks安裝腳本應該說:“請注意,上述路徑中的%APPDATA%元素是特定於用戶,並且必須用其實際值替換。”-siffiejoe

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM