我将所有的火炬包安装到我的本地文件火炬发行版中(本教程之后)。我想用来Zerobrane
调试我的代码。Zerobrane
找不到我本地的火炬路径。如何设置Zerobrane
环境变量的本地路径。
我尝试将 path.lua = "${prefix}/torch-distro/install/bin/luajit" 添加到 user.lua 中。但它不能工作
2 回答
以下方法适用于linux平台:
通过将以下代码添加到 user.lua 来配置 luajit 解释器
path.lua = "your_path/luajit"
通过将以下代码添加到 /opt/zbsstudio/lualibs/mobdebug/mobdebug.lua 来配置环境变量
package.path = package.path .. ';my_path/?/init.lua' package.cpath = package.cpath .. ';my_path/?.so'
(这些说明适用于 Windows 版本的 Torch,但假设路径已修改,这些步骤应该适用于 Linux/OSX 版本)。
假设 Torch 安装在 中C:\Program Files\Torch
,那么要让它作为 ZeroBrane Studio (ZBS) 的外部解释器运行,您需要添加path.lua=[[C:\Program Files\Torch\bin\torch-lua]]
到<ZBS>\cfg\user.lua
配置文件中。
Project | Run
现在,当您从 ZBS(或)执行 Lua 脚本时F6
,它将在 Torch 环境中运行:
local torch = require 'torch'
local data = torch.Tensor{
{68, 24, 20},
{74, 26, 21},
{80, 32, 24}
}
print(data)
但是,要在 Windows 上进行调试还需要几个步骤(在其他系统上可能不需要这些步骤,但我还没有在那里测试过调试)。ZBS 正在使用 luasocket,它是针对 编译的lua51.dll
,但 Torch 正在使用libtorch-lua.dll
,因此将 luasocket 加载到您的 (Torch) 进程中可能会使其崩溃。要使其工作,您需要构建一个代理 DLL 并将其放入您的Torch/bin
文件夹中。
要构建代理 DLL,您需要编译 Visual Studio C++ 或 mingw/gcc,并且可以按照以下步骤操作:
- 从Lua Proxy DLL3 page获取
mkforwardlib.lua
(VS) 或mkforwardlib-gcc.lua
(mingw/gcc) 脚本。 - 运行
lua mkforwardlib.lua libtorch-lua lua51 X86
;如果一切顺利,这将lua51.dll
在当前文件夹中生成文件。 - 将文件复制
lua51.dll
到Torch\bin
文件夹。
现在您应该能够使用Project | Start Debugging
.