簡體   English   中英

Windows上的LUAROCKS奇怪地安裝了岩石

[英]LUAROCKS on windows installs rocks oddly

在Linux上,luarocks會將岩石安裝到

/usr/local/lib/luarocks/rock

並將相應的lua文件放入

/usr/local/share/lua/5.3

在Windows(LUA 5.1)上,岩石位於:

C:\Program Files (x86)\LuaRocks\systree\lib\luarocks

lua文件位於:

C:\Program Files (x86)\LuaRocks\systree\share\lua\5.1

但是lua在Windows安裝中找不到它們。

我一定有路徑問題

這是我的一些路徑:

Path=C:\Program Files (x86)\Lua\5.1\lua\;C:\Program Files (x86)\LuaRocks\2.2;C:\Program Files (x86)\LuaRocks\2.2\lua\luarocks;C:\Program Files (x86)\LuaRocks\systree\bin;C:\Perl64\site\bin;C:\UnxUpdts;C:\Perl64\bin;C:\Program Files (x86)\Lua\5.1;C:\Program Files (x86)\Lua\5.1\clibs

我正在嘗試ZeroBraneStudio,因為IDE和我的系統偏好指定了此路徑

path.lua = 'C:\Program Files (x86)\Lua\5.1'

我跑了

luarocks install inspect

然后生成了必要的文件。 然后,我編寫了這個簡單的測試代碼:

require "inspect"
assert(inspect(1) == "1")
assert(inspect("Hello") == '"Hello"')

並得到這個錯誤

Program starting as '"E:\Anonamouse\ZeroBraneStudio\bin\lua.exe" -e "io.stdout:setvbuf('no')" "E:\Anonamouse\ZeroBraneStudio\myprograms\DemoInspectModule.lua"'.
Program 'lua.exe' started in 'E:\Anonamouse\ZeroBraneStudio\myprograms' (pid: 14776).
E:\Anonamouse\ZeroBraneStudio\bin\lua.exe: ...namouse\ZeroBraneStudio\myprograms\DemoInspectModule.lua:2: attempt to call global 'inspect' (a nil value)
stack traceback:
        ...namouse\ZeroBraneStudio\myprograms\DemoInspectModule.lua:2: in main chunk
        [C]: at 0x00402a57
Program completed in 0.04 seconds (pid: 14776).

當我直接在控制台中執行相同的簡單應用程序時,會遇到相同的錯誤。(這告訴我lua的PATH變量正在工作)

我想念什么?

從錯誤消息中判斷,您引用了require "inspect"效果很好,但是模塊未設置全局變量inspect 一段時間以來,一直的策略是從模塊內部設置全局變量,而是從模塊代碼返回某些內容(通常是模塊表),然后再通過require向下傳遞。 所以大概像

local inspect = require "inspect"
assert(inspect(1) == "1")
assert(inspect("Hello") == '"Hello"')

要么

local inspect = require "inspect"
assert(inspect.inspect(1) == "1")
assert(inspect.inspect("Hello") == '"Hello"')

應該管用。

暫無
暫無

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

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