我正在尝试使用PyInstaller从我的Python 3.7应用程序在Windows上构建.exe文件。构建过程似乎顺利完成,并且没有显示任何错误; 但是,在Windows命令提示符上执行该文件会导致以下糟糕的错误:
OSError: 没有找到PortAudio库
我已经对此问题进行了一些研究并找到了一些信息,但仍然无法解决它。我的应用程序使用sounddevice库,它依赖于PortAudio库。由于当我直接使用Python运行它时,PortAudio被安装了,因此该应用程序可以完美地工作; 显然,问题在于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”以获取更多信息。 from ctypes.util import find_library a = find_library('portaudio') print(a) None 到目前为止,我已经尝试了几种解决方案。首先,我手动下载并编译了最新的PortAudio版本。不管用。然后,我尝试使用Anaconda而不是官方的Python发行版; 正如您可能已经知道的那样,Anaconda的软件包管理器“conda”可以处理像PortAudio这样的C库。因此,我在我的Anaconda虚拟环境中安装了它,并尝试在其中构建我的应用程序。也没有成功。我还尝试将PortAudio目录添加到Windows PATH变量中,但它也失败了。我有点失落。我唯一尚未尝试的想法是在Linux上使用Wine进行构建,但我怀疑可能有方法使其在Windows上工作。
您有任何想法吗?
OSError: 没有找到PortAudio库
我已经对此问题进行了一些研究并找到了一些信息,但仍然无法解决它。我的应用程序使用sounddevice库,它依赖于PortAudio库。由于当我直接使用Python运行它时,PortAudio被安装了,因此该应用程序可以完美地工作; 显然,问题在于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”以获取更多信息。 from ctypes.util import find_library a = find_library('portaudio') print(a) None 到目前为止,我已经尝试了几种解决方案。首先,我手动下载并编译了最新的PortAudio版本。不管用。然后,我尝试使用Anaconda而不是官方的Python发行版; 正如您可能已经知道的那样,Anaconda的软件包管理器“conda”可以处理像PortAudio这样的C库。因此,我在我的Anaconda虚拟环境中安装了它,并尝试在其中构建我的应用程序。也没有成功。我还尝试将PortAudio目录添加到Windows PATH变量中,但它也失败了。我有点失落。我唯一尚未尝试的想法是在Linux上使用Wine进行构建,但我怀疑可能有方法使其在Windows上工作。
您有任何想法吗?