在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在图像修复的研究中,发现许多的实现代码用的是Torch,自然也就是要用Lua了。实际上去看了看,发现Lua还是小众语言,连IDE都没个强力的。 首先是ZeroBrane Studio,该项目在Github也有一千多个星。Linux上运行起来发现该IDE还是挺简陋的,毕竟也才十几M大小。高亮和双击选择都不够好,更要命的是输入字符都成问题(无法输入,使用Ubuntu 18.04 Intelligent Pinyin,我知道许多Linux程序有输入问题,比如Sublime在Ubuntu下的中文输入问题)。放一个使用图吧: 接着是EmmyLua的IntelliJ插件,可以对Lua进行较好的支持,该项目在Github上有四百多个星(看来Lua真的小众,这样的插件也才这么少的星)。下载了之后我并没有使用,因为这个是插件形式,还是对JetBrains的产品,而我当前使用Python的IDE就是Pycharm,所以就决定用Pycharm的插件来搞作为Lua IDE了。 Pycharm在File-Settings中找到Plugins,搜索lua,如下: 安装时会提示这个其实是第三方插件,不是JetBrains提供的。接着要重启下Pycharm,然后打开一个Lua项目,选到Lua脚本目录即可。看一下效果: 由于我已经习惯了JetBrains全家桶,原来的Android Studio,到现在用的Pycharm,所以看到这样的Lua IDE就很高兴了。下面尝试运行下,需要先配置Run/Debug: 说明下情况,我的Torch是用官方文档指导编译安装的,我也一直用th命令执行lua脚本。配置了该项后,Pycharm运行lua脚本已经没有问题: 然后到调试步骤出了问题,我需要单步调试功能,但是报错“tput: No value for $TERM and no -T specified”,也就是上图中的那句,只不过运行的时候无影响。 另外发现该插件并不能自动补齐,且上面的错误暂时不太好搜索。 下面接着,使用了EmmyLua插件,配置中“Program”项设置为th,报错“module 'socket' not found”。我尝试“luarocks install luasocket --only-server=http://luarocks.org/repositories/rocks-scm”,安装成功后却继续报错“torch/install/lib/lua/5.1/socket/core.so: undefined symbol: luaL_setfuncs”。这里已经不好搜索了,所以就按配置项中的提示,用mobdebug来试试。下载了mobdebug,设置中下拉列表并无法选择。 更新: luarocks remove luasocket 删除以上命令安装的luasocket,使用: luarocks install luasocket 安装luasocket,此时EmmyLua可以运行了,但是无法输出: 现在好歹能高亮和自动补齐,PyCharm中运行和调试lua就先不折腾了。 更新: 选择了eclipse ldt,不过这个好像挺老的。我的ubuntu 18.04上面是java10,所以这个包解压缩运行报错: javax.annotation.PostConstruct cannot be found by org.eclipse.e4.core.di_1.6.100.v20170421-1418 问题很宽泛,找到一个关于java9的,说要对ini添加: --add-modules=ALL-SYSTEM 放一个ldt配置文件截图吧: 总算是启动了,然而自动补全都没有啊: 很少用eclipse,对lua的运行和调试配置又要研究,还没多少资料,心累。 |
请发表评论