我正在尝试构建一个在浏览器中工作的语音识别应用程序。目前正在与一名网络工作者一起使用pyodide。我有自己的包,与pyaudio一起构建,用于网络工作者。
有没有一种方法可以在我的python包中包含brew灌输,特别是portaudio,这样当我构建包时,portaudio就会包含在轮子文件中?我需要包括portaudio,以便在浏览器中工作。
谢谢!
我理解两个不同的问题,所以我将尝试同时回答这两个问题。
我可以让python构建在构建时中获取Homebrew项目吗
据我所知,答案是否定的。Python分发系统与Homebrew是分开的,它们不能以这种方式进行交互。
即使他们可以,这也不一定是可取的:
- 如果用户不在macOS(或Linux(上,会发生什么?那么构建就会失败
- Homebrew将安装包的前缀不是很确定。用户可能使用自定义前缀,也可能使用Apple Silicon(与Intel的默认前缀不同(。
- 您的python包可能在查找包时遇到一些困难
- 如果他们没有安装Homebrew呢?他们可能会有另一个像MacPorts或Fink这样的软件包管理器,或者根本没有
我可以将portaudio捆绑到构建发行版中吗?
也许?即使你可以,我几乎肯定不会推荐它
- 绑定依赖关系不必要地增加了分布的大小
- 如果你能做到的话,这将需要合理的努力来设置
所有这些原因都是为什么对于大多数具有类似设置的项目,您会发现他们建议在构建Python源代码之前,先使用系统包管理器安装某些包。
这允许他们选择他们安装的任何包管理器,而且这也应该是一个快速而无痛的过程。
因此,只需将您的安装说明更改为以下内容:
# On macOS
brew install portaudio
pip install ...