在Linux下,使用Lua 5.1,我有一个位于隐藏目录下的lua脚本:~/.texmf/lua/print_table.lua
。 (这是与LuaTeX相关的,这就是为什么它在texmf目录中。)我从我的主目录以交互方式运行lua
,尝试require
该文件,并收到以下错误消息:
> require('.texmf/lua/print_table')
stdin:1: module '..texmf/lua/print_table' not found:
no field package.preload['.texmf/lua/print_table']
no file './/texmf/lua/print_table.lua'
... [file not found in other - irrelevant - trees, either, of course]
> require('/home/me/.texmf/lua/print_table')
stdin:1: module '/home/me/.texmf/lua/print_table' not found:
no field package.preload['/home/me/.texmf/lua/print_table']
no file './/home/me//texmf/lua/print_table.lua'
...
所以,显然require
将句点变成斜杠。逃避这段时间不起作用:我尝试将时间加倍,在它前面贴上反斜杠,并在前面贴上两个反斜杠。有没有办法require
一个文件在其路径中有一个隐藏目录(或任何其他句号)?
答案 0 :(得分:4)
您可以使用loadfile
代替require;这样,您可以指定直接路径。最近有一个问题......
答案 1 :(得分:3)
require
需要模块名称,而不是路径。
您可能希望将/home/me/.texmf/lua/?.lua
添加到package.path
或LUA_PATH
。然后你就可以说require "print_table"
。