我有一个简单的脚本,我想用require导入另一个脚本,但是当我从Notepad ++运行它时,我得到了通常需要生成的错误。
有趣的是,它在一小时前工作,从那时起我就没有重新启动计算机。
这些文件位于同一目录中,因此简单的文件名(没有.lua)可以正常工作。 (相对路径)
Lua运行脚本就好了。
这是我在记事本中输入的内容: cmd / k lua“$(FULL_CURRENT_PATH)”
早些时候我也遇到了Penlight的问题,也许有一些连接,所以这里是: 我试图要求“pl”,但它找不到模块。 (从SciTE开始,工作得很好) 我在Lua命令行中尝试过,它就像一个魅力。 在SciTE再次尝试,瞧它再次起作用。
我不知道导致其中任何一个的原因。
ps。:使用lfs模块和os.execute(“cd / d ... path ...”)无法正常工作
答案 0 :(得分:1)
Lua正在LUA_PATH的文件夹中搜索所需的模块。在通过F5运行的脚本中,输入以下语句:
print('current path is:')
os.execute('cd')
require 'someModuleThatDoesntExist'
打印“working”forlder(Program Files / Notepad ++)后,它会尝试查找所需的模块并失败。回溯显示Lua查看了许多不同的文件夹,其中没有一个是包含FULL_CURRENT_PATH的文件夹,因此无法找到该模块。
您有多种选择:
例如,使用#3,第一个选项,您将使用
cmd /k lua "$(FULL_CURRENT_PATH)" "$(CURRENT_DIRECTORY)"
在notepad ++和你的Lua模块中你会使用
thisModuleDir = arg[1]
package.path = thisModuleDir .. ";" .. package.path
require 'yourmodule'