解决python安装xxx模块后仍然报错ModuleNotFoundError: No module named ‘xxx‘问题


背景 & 问题描述

最近遇到一个很神奇的问题,之前已经通过pip3安装过的pydub模块突然不能用了,报错

ModuleNotFoundError: No module named 'pydub'

执行pip3 list | grep pydub,却有对应的输出,证明确实是已经安装上了

$ pip3 list | grep pydub
pydub                 0.25.1

试过了reinstall后也有同样的问题,在网上搜索了很久,也没发现有效的解法。
不过经过我的排查,终于发现问题所在:

$ python3 -V
Python 3.6.8

$ which python3  
/usr/bin/python3

$ ls -l /usr/bin/python3
lrwxrwxrwx 1 root root 9 Jun 27 11:26 /usr/bin/python3 -> python3.6
$ pip3 -V               
pip 23.1.2 from /usr/local/python3/lib/python3.8/site-packages/pip (python 3.8)

发现python3这个命令指向的python版本和pip3指向的python版本不一致,这就是问题所在。

解法

pip3python3指向的python版本设置为相同的路径即可,在我的这个环境下我设置为pip3对应的这个3.8版本,即通过修改软链实现:

$ ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3

验证是否修改成功

$ which python3 
/usr/bin/python3

$ ls -l /usr/bin/python3                                     
lrwxrwxrwx 1 root root 32 Jul 13 17:32 /usr/bin/python3 -> /usr/local/python3/bin/python3.8

$ python3             
Python 3.8.1 (default, Feb  9 2023, 20:00:12) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pydub
>>> 

OK,没问题。至此,解决问题。

猜你喜欢

转载自blog.csdn.net/gongchenyu/article/details/131707040