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




