有没有一种方法可以在python构建中包含brew灌输



我正在尝试构建一个在浏览器中工作的语音识别应用程序。目前正在与一名网络工作者一起使用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 ...

最新更新