You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

GitHub Actions中安装playsound==1.3.0报错OSError: could not get source code求助

GitHub Actions中安装playsound==1.3.0报错OSError: could not get source code求助

你遇到的这个问题我之前碰到过类似情况,playsound 1.3.0版本在GitHub Actions的Ubuntu环境下安装时,确实容易出现这个「OSError: could not get source code」的报错,咱们一步步来分析解决:

问题根源

playsound 1.3.0的setup.py里使用了inspect.getsource()函数来获取代码片段,这个函数在本地环境(直接解压源码包安装)能正常工作,但在GitHub Actions的pip构建隔离环境中,临时目录的路径结构会导致它找不到源码文件的正确位置,从而抛出这个错误。你试过的卸载重装wheel的方法没用,是因为问题根源不在wheel本身,而是playsound的安装脚本和构建环境的兼容性问题。

可行的解决方案

这里给你几个不同的解决思路,你可以根据自己的需求选择:

  • 方案一:升级playsound到修复版本
    playsound在1.3.1及之后的版本里修复了这个setup.py的问题,你只需要修改requirements.txt里的版本号:

    playsound>=1.3.1
    

    或者指定一个具体的新版本(比如1.3.2),这样GitHub Actions里安装时就能正常构建wheel,不会再触发源码获取的错误。

  • 方案二:禁用构建隔离(必须用1.3.0时)
    如果因为项目依赖必须使用1.3.0版本,你可以在安装时加上--no-build-isolation参数,让pip不创建单独的构建隔离环境,直接用当前环境的工具来安装:
    修改.github/workflows/pylint.yml里的安装步骤:

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install --no-build-isolation -r requirements.txt
        pip install pylint
    

    这样就能绕过隔离环境下的源码路径问题,顺利安装playsound 1.3.0。

  • 方案三:直接从源码安装(备选)
    你也可以直接克隆playsound的仓库并切换到1.3.0版本,然后用setup.py安装,不过这种方法不如前两种简便:

    git clone https://github.com/TaylorSMarks/playsound.git
    cd playsound
    git checkout tags/1.3.0
    python setup.py install
    

验证建议

优先试试方案一,升级版本是最稳妥的解决方式;如果必须保留1.3.0版本,方案二的修改成本很低,在GitHub Actions里重新跑一遍流水线应该就能正常安装了。

备注:内容来源于stack exchange,提问作者noriko

火山引擎 最新活动