最近遇到一个很神奇的问题,之前已经通过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版本不一致,这就是问题所在。
将pip3
和python3
指向的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,没问题。至此,解决问题。