Linux Mint下使用Lua创建Pure Data补丁时pdlua模块未找到求助
问题:Lua无法加载已安装的pdlua模块
我想用Lua创建Pure Data补丁来调用声音,代码如下:
require("pd") require("pdlua") -- create a new Pure Data patch patch = pd.newPatch(1, 1) -- create an object and connect it to the output pd.sendMessage(patch, "pd dsp 1") pd.sendMessage(patch, "pd object [osc~ 440]") pd.sendMessage(patch, "pd connect 0 0 1 0") -- send a message to the object to start generating a sound pd.sendMessage(patch, "pd message 1 0 bang")
运行后报错:
lua: teste.lua:2: module 'pdlua' not found: no field package.preload['pdlua'] no file '/usr/local/share/lua/5.4/pdlua.lua' no file '/usr/local/share/lua/5.4/pdlua/init.lua' no file '/usr/local/lib/lua/5.4/pdlua.lua' no file '/usr/local/lib/lua/5.4/pdlua/init.lua' no file './pdlua.lua' no file './pdlua/init.lua' no file '/usr/local/lib/lua/5.4/pdlua.so' no file '/usr/local/lib/lua/5.4/loadall.so' no file './pdlua.so' stack traceback: [C]: in function 'require' teste.lua:2: in main chunk [C]: in ?
我已经在Linux Mint 20.04上安装了pdlua库,请问该如何解决?
解决步骤
1. 定位pdlua的实际安装路径
在终端执行以下命令,找出pdlua模块的位置:
sudo find / -name "pdlua*"
注意查看输出结果,比如可能在/usr/lib/x86_64-linux-gnu/lua/5.3/这类路径下(Linux Mint 20.04默认Lua版本多为5.3,而报错中Lua在搜索5.4版本的路径)。
2. 检查Lua版本兼容性
先确认当前使用的Lua版本:
lua -v
如果输出是Lua 5.3.x,但报错显示Lua在查找5.4的路径,说明你安装的pdlua是针对5.3编译的,此时有两种解决方式:
- 用对应版本的Lua运行脚本:
lua5.3 teste.lua - 重新编译安装pdlua,指定适配Lua 5.4
3. 手动添加模块搜索路径
如果pdlua安装在非标准路径,比如找到的路径是/usr/lib/lua/5.3/pdlua.so,可以在脚本开头添加路径配置:
package.cpath = package.cpath .. ";/usr/lib/lua/5.3/?.so" require("pd") require("pdlua") -- 后续代码保持不变
或者在运行脚本时通过环境变量临时指定:
LUA_CPATH="/usr/lib/lua/5.3/?.so" lua teste.lua
4. 重新安装完整的pdlua
如果find命令找不到pdlua.so或pdlua.lua文件,说明安装不完整,重新执行安装:
- 用系统包管理器安装:
sudo apt install pdlua - 若为源码编译安装,重新编译时指定Lua版本:
./configure --with-lua-version=5.4 make sudo make install
内容的提问来源于stack exchange,提问作者kobe
相关产品推荐
相关产品推荐

