LUA require 搜索路径指定方法

来源:互联网 发布:个人贷款数据分析 编辑:程序博客网 时间:2024/04/29 21:15

http://blog.csdn.net/langeldep/article/details/8289199

如果是一个 *.LUA 的文件, 里面用到了自己写的库, 或者第三方写的库, 但是你不想把它放到 lua 的安装目录里, 则在代码里面可以指定require搜索的路径。


    package.path = '/usr/local/share/lua/5.1/?.lua;/home/resty/?.lua;'    --搜索lua模块
    package.cpath = '/usr/local/lib/lua/5.1/?.so;'        --搜索so模块


如果是要在 nginx.conf 文件中引用第三方的库,则需要在 http 段中添加下面的代码

    lua_package_path '/usr/local/share/lua/5.1/?.lua;/home/resty/?.lua;';
    lua_package_cpath '/usr/local/lib/lua/5.1/?.so;';


在lua中,require函数像dofile一样载入文件为一个Chunk并执行。但具有两个好处:1. 按模式加载文件 2.不会重复载入相同的文件。

require的参数是一个完整的文件名(目录名+文件名,可能有点类似于java中的包吧),即package.path,典型的package.path值如下(其中D:\Bin为lua.exe所在目录):
.\?.lua;D:\Bin\lua\?.lua;D:\Bin\lua\?\init.lua;D:\Bin\?.lua;D:\Bin\?\init.lua
通常对我们有用的目录是.\?.lua
所以,如果要执行当前目录的test.lua文件,我们只需要require("test")即可,但是如果我们要执行另一个目录下的文件,比如"D:\lua\a.lua",我们就需要将这个路径加入到package.path当中,例如我们可以这样写:
package.path=package.path .. ";D:\?.lua"
这样我们就可以使用require函数了,比如require("a").


0 0
原创粉丝点击