要么我过度或失明。我想学习Lua的网络,因此我必须安装socket
lib,所以我可以轻松地要求它,但我不知道,我应该“需要”哪些文件。例子说:
local socket = require("socket")
但正如我所说,我不知道应该包含哪些文件,如果我使用socket.lua
它不起作用我得到:No files found
。
我从这里获得了lib:Lua socket download
或者,是否有另一种安装套接字库的方法?
答案 0 :(得分:13)
当您使用require
加载模块时,Lua使用包路径来确定在哪里查找模块。请查看Lua手册的Modules部分。具体而言,package.path
和package.cpath
部分。
package.path:require用于搜索Lua加载程序(.lua模块)的路径 package.cpath:require用于搜索C加载程序的路径(.so / .dll模块)
您可以查看当前路径:
print(package.path..'\n'..package.cpath)
如果您将LuaSocket安装到当前包路径中的某个位置,Lua应该能够找到并加载它。
或者,您可以在调用require
之前修改包路径。例如,如果为项目创建文件夹并将LuaSocket库解压缩到项目文件夹中名为libs
的子文件夹中:
Project
|
> libs
|
> lua
|
> socket
> socket
> mime
您可以在require
套接字库之前设置相对于项目的包路径(在Linux上用/?.dll
替换/?.so
):
package.path = package.path..';./libs/lua/?.lua'
package.cpath = package.cpath..';./libs/socket/?.dll;./libs/mime/?.dll'
local socket = require 'socket'
答案 1 :(得分:0)
在linux系统上使用此命令:
#luarocks install luasocket
使用下一个命令查看路径CONFIGURATION
#luarocks
您需要使用默认的Linux帐户(请参阅:CONFIGURATION):
$lua
> socket = require ("socket")
或使用此:
> socket = require 'socket'