如何为Python包配置PyAudio依赖,使ReadTheDocs文档可正常编译
解决ReadTheDocs编译文档时PyAudio依赖报错的方案
方法1:安装系统依赖PortAudio
ReadTheDocs的构建环境基于Ubuntu,默认未预装PortAudio开发库,导致PyAudio编译失败。可通过配置文件指定安装系统依赖:
- 在项目根目录创建或修改
.readthedocs.yaml文件,添加以下内容:
version: 2 build: os: ubuntu-22.04 tools: python: "3.10" # 安装PortAudio开发包 system_packages: - portaudio19-dev # 配置Python依赖安装 python: install: - requirements: requirements.txt - method: pip path: .
该配置会让ReadTheDocs在构建前先安装PortAudio开发文件,之后PyAudio即可正常编译安装。
方法2:用Mock跳过PyAudio安装(适合仅生成API文档场景)
如果你的Sphinx文档不需要实际运行PyAudio相关代码,仅需生成API文档,可让Sphinx模拟PyAudio模块,避免安装它:
- 打开Sphinx配置文件
conf.py,添加以下代码:
autodoc_mock_imports = ["pyaudio"]
这样Sphinx生成文档时会虚拟出pyaudio模块,无需实际安装。同时你的pyproject.toml依然保留PyAudio作为依赖,用户安装包时会自动处理PortAudio相关问题。
方法3:使用预编译PyAudio轮子(可选)
可直接指定安装针对Linux的预编译PyAudio轮子,跳过编译步骤。修改requirements.txt中的PyAudio行:
PyAudio @ https://files.pythonhosted.org/packages/9b/de/48cd4b1414534d364377a391198975a509096d033f63023760b96193d0d3/PyAudio-0.2.13-cp310-cp310-linux_x86_64.whl
注意:轮子URL需对应ReadTheDocs使用的Python版本和系统架构,此方法稳定性较差,URL可能随版本更新变化,优先推荐前两种方法。
内容的提问来源于stack exchange,提问作者RomainP
相关产品推荐
相关产品推荐

