Anaconda虚拟环境中使用playsound测试报错 cannot import name ‘_gi‘ from ‘gi‘

    from . import _gi
ImportError: cannot import name '_gi' from 'gi' (/home/chuw/anaconda3/envs/env37/lib/python3.7/site-packages/gi/__init__.py)

ubuntu20.04自带python3.8,anaconda的环境是python3.8,虚拟环境是python3.7,如果你python版本一致或者是只在cnaconda的环境中调用函数,可以使用软件链接引用gi模块

#anaconda环境
ln -s /usr/lib/python3/dist-packages/gi /home/用户名/anaconda3/lib/python3.8/site-packages/
#anaconda环境的虚拟环境
ln -s /usr/lib/python3/dist-packages/gi /home/用户名/anaconda3/envs/虚拟环境名称/lib/python3.7/site-packages/
#不一致可以使用cp更改版本
#例如python3.8到python3.7
sudo cp _gi.cpython-38-x86_64-linux-gnu.so _gi.cpython-37-x86_64-linux-gnu.so 
sudo cp _gi_cairo.cpython-38-x86_64-linux-gnu.so _gi_cairo.cpython-37-x86_64-linux-gnu.so 

(base) chuw@chuw-Alienware-17-R4:~$ python
Python 3.8.5 (default, Sep  4 2020, 07:30:14) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
>>> 
#成功

创建软连接需要注意,不要删除原有的_gi,或者cp的时候使用mv可能会导致你终端失效,你还需要进入命令行模式改回来。
上述方法在anaconda环境中成功了,虚拟环境中失败了,改成37或者37m都没用,可能只能在虚拟环境中安装gi模块了,具体参考如何为Python3安装gi模块?
进入你的conda虚拟环境,安装pygobject,因为pysobject需要gi模块的依赖,因此一起就安装上了

conda install -c conda-forge pygobject
#import gi成功

之后运行出现了这个报错

gi.require_version("Gtk", "1.0")
 	raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Gst not available

安装Gst1.0

sudo apt install -y python-dateutil gir1.2-gstreamer-1.0 python-pyaudio libatlas-base-dev

后来运行不报错依然不能播放声音,采用pygame的方法来播放wav文件了,播放mp3会报错,可以用格式工厂转化一下

#from playsound import playsound
#playsound('warning.mp3')
from pygame import mixer
import time

mixer.init()
mixer.music.load('warning1.wav')
mixer.music.play()
time.sleep(3)
mixer.music.stop()

成功播放

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值