【发布时间】:2021-12-17 01:30:59
【问题描述】:
我在 Ubuntu 上运行的项目中使用 sounddevice - 当我使用 pyinstaller 构建单个文件时失败(运行源 python 文件时代码运行良好):
Traceback (most recent call last):
File "Run_SD.py", line 2, in <module>
File "Smart_Device.py", line 26, in init Smart_Device
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "PyInstaller/loader/pyimod03_importers.py", line 540, in exec_module
File "sounddevice.py", line 71, in <module>
OSError: PortAudio library not found
[213] Failed to execute script Run_SD
不幸的是,我不能简单地在机器上安装所需的 portaudio,所以它需要包含在包中。我尝试使用以下方法添加库:
--add-binary libportaudio.so:. --add-binary libportaudio.a:.
但这不起作用。我猜我需要将 portaudio 库实际导入到我的 python 源中——对吗?有关如何执行此操作的任何指示?
【问题讨论】:
-
总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是截图,不是链接到外部门户)有问题(不是评论)。还有其他有用的信息。
-
您阅读过
pyinstaller文档吗?有一些信息如何解决一些问题。 -
也许你应该使用
/full/path/to/libportaudio.so -
我更新了完整的错误信息。我不需要 libportaudio.so 的完整路径,因为它就在源目录中(之前已复制),因此添加它没有问题。
-
我只是猜测 - 也许
pyinstaller在不同的文件夹中运行,它需要完整的路径才能找到它。这是最常见的问题。其他想法 -pyinstaller应该创建文件.spec,您可以使用它来添加模块/库/资源,也许您可以在文档中找到如何正确使用它。
标签: python python-3.x pyinstaller portaudio