1 回答

TA貢獻1860條經驗 獲得超8個贊
你運行lua時,test1.lua和test2.lua是在當前目錄下嗎?
Plain Text code
?
/tmp/ cat test1.lua
package.path = package.path .. ;./?.lua
local test2 = require(test2)
/tmp/ ~/tmp/lua-5.2.2/src/lua test1.lua 沒問題
/tmp/ rm test2.lua 刪掉test2.lua
/tmp/ ~/tmp/lua-5.2.2/src/lua test1.lua 報錯了
/home/user/tmp/lua-5.2.2/src/lua: test1.lua:2: module ;test2; not found:
no field package.preload[;test2;]
no file ;/usr/local/share/lua/5.2/test2.lua;
no file ;/usr/local/share/lua/5.2/test2/init.lua;
no file ;/usr/local/lib/lua/5.2/test2.lua;
no file ;/usr/local/lib/lua/5.2/test2/init.lua;
no file ;./test2.lua;
no file ;./test2.lua;
no file ;/usr/local/lib/lua/5.2/test2.so;
no file ;/usr/local/lib/lua/5.2/loadall.so;
no file ;./test2.so;
stack traceback:
[C]: in function ;require;
test1.lua:2: in main chunk
[C]: in ?
/tmp/ touch test2.lua 重新建立test2.lua
/tmp/ ~/tmp/lua-5.2.2/src/lua test1.lua 沒問題
/tmp/ cd ~/tmp 換到別的目錄
~/tmp/ ~/tmp/lua-5.2.2/src/lua /tmp/test1.lua 出錯了
/home/user/tmp/lua-5.2.2/src/lua: /tmp/test1.lua:2: module ;test2; not found:
no field package.preload[;test2;]
no file ;/usr/local/share/lua/5.2/test2.lua;
no file ;/usr/local/share/lua/5.2/test2/init.lua;
no file ;/usr/local/lib/lua/5.2/test2.lua;
no file ;/usr/local/lib/lua/5.2/test2/init.lua;
no file ;./test2.lua;
no file ;./test2.lua;
no file ;/usr/local/lib/lua/5.2/test2.so;
no file ;/usr/local/lib/lua/5.2/loadall.so;
no file ;./test2.so;
stack traceback:
[C]: in function ;require;
/tmp/test1.lua:2: in main chunk
[C]: in ?
添加回答
舉報