改变Python版本后”import gi“导入失败的解决方法

我是在docker中部署代码环境,之前的python是3.6.9版本,想通过jit对原本的代码进行加速优化,但是安装numba时遇到了版本兼容性问题,所以将Python版本升级到了3.7.5,这时候需要重新部署原本的代码环境,在’import gi‘时遇到了问题:

Traceback (most recent call last):
  File "main.py", line 3, in <module>
    from utils import *
  File "/root/videoBox/utils.py", line 2, in <module>
    import gi
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
    from . import _gi
ImportError: **cannot import name '_gi' from 'gi' (/usr/lib/python3/dist-packages/gi/__init__.py)**

本以为是环境依赖的问题,重新清理环境并安装依赖项后问题还是存在;

接着考虑是不是 PYTHONPATH 环境变量设置的问题,重新指定环境变量路径后还是提示导入失败;

接着查找 /usr/lib/python3/dist-packages/gi/目录中文件是否完好

ls -l /usr/lib/python3/dist-packages/gi/

####:/$ sudo docker exec -it ai bash
root@2e1d778977b6:~/videoBox# ls -l /usr/lib/python3/dist-packages/gi/
total 416
-rw-r--r-- 1 root root   5998 Jan 29  2019 __init__.py
drwxr-xr-x 2 root root   4096 Aug 28 11:53 __pycache__
-rw-r--r-- 1 root root   1945 Jan 29  2019 _constants.py
-rw-r--r-- 1 root root   2080 Jan 29  2019 _error.py
**-rw-r--r-- 1 root root 302416 Jan 29  2019 _gi.cpython-36m-aarch64-linux-gnu.so**
-rw-r--r-- 1 root root  13232 Jan 29  2019 _option.py
-rw-r--r-- 1 root root  15042 Jan 29  2019 _propertyhelper.py
-rw-r--r-- 1 root root   9842 Jan 29  2019 _signalhelper.py
-rw-r--r-- 1 root root   6688 Jan 29  2019 docstring.py
-rw-r--r-- 1 root root   5288 Jan 29  2019 importer.py
-rw-r--r-- 1 root root  10000 Jan 29  2019 module.py
drwxr-xr-x 3 root root   4096 Aug 28 11:48 overrides
-rw-r--r-- 1 root root    766 Jan 29  2019 pygtkcompat.py
drwxr-xr-x 3 root root   4096 Aug 28 11:48 repository
-rw-r--r-- 1 root root  13776 Jan 29  2019 types.py

由**-rw-r–r-- 1 root root 302416 Jan 29 2019 _gi.cpython-36m-aarch64-linux-gnu.so**发现系统中.so文件适配的依然是cpython-36m即3.6版本,尝试多种方法,包括清理重新安装、更改文件名为.cpython-37m-aarch64-linux-gnu.so等,都没有实质解决问题,但是可以确定导入失败是版本不适配导致的

最后尝试如下命令

python3.7 -m pip install --ignore-installed PyGObject

在这里插入图片描述
即通过指定 python3.7 -m 的方式,确保 pip 使用 Python 3.7 环境下的包管理器来安装,成功解决了兼容性问题

在这里插入图片描述
成功导入模块

注意安装PyGObject前确保安装了相应依赖

sudo apt-get update
sudo apt-get install libcairo2-dev pkg-config python3-dev

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值