【发布时间】:2019-08-29 04:33:21
【问题描述】:
我正在尝试使用 PyInstaller 从我的 Python 3.7 应用程序在 Windows 上构建一个 .exe。构建似乎运行顺利并且没有显示错误;但是,在 Windows 命令提示符下执行该文件会导致这个可怕的错误:
OSError:未找到 PortAudio 库
我已经对此问题进行了一些研究并找到了一些信息,但仍然无法克服它。我的应用程序使用 sounddevice 库,它依赖于 PortAudio 库。安装了 PortAudio,因为当我直接使用 Python 运行该应用程序时,它可以完美运行;显然,问题是 PyInstaller 以某种不同的方式跟踪依赖项,并且无法找到它并将其链接到构建。
这种“不同的方式”实际上是从“ctypes.util”Python 库中调用“find_library”函数来查找系统上的 PortAudio 库。因此,我在 Python 上运行了以下命令并确认它无法找到该库。
Python 3.7.1(默认,2018 年 12 月 10 日,22:54:23)[MSC v.1915 64 位 (AMD64)] :: > Anaconda, Inc. on win32 输入“help”、“copyright”、“credits”或“license”了解更多信息。
从 ctypes.util 导入 find_library
a = find_library('portaudio')
打印(一)
无
到目前为止,我已经尝试了几种解决方案。首先,我手动下载并编译了最后一个 PortAudio 版本。没用。然后,我尝试使用 Anaconda 而不是官方的 Python 发行版;您可能知道,Anaconda 的包管理器“conda”可以处理像 PortAudio 这样的 C 库。所以我将它安装在我的 Anaconda 的虚拟环境中,并尝试在那里构建我的应用程序。也没有用。我也尝试将 PortAudio 目录添加到 Windows PATH 变量,但它也失败了。我有点迷路了。我尚未尝试的唯一想法是使用 Wine 在 Linux 上构建它,但我怀疑可能有一种方法可以让它在 Windows 上运行。
有什么想法吗?
【问题讨论】:
标签: python-3.x windows pyinstaller portaudio