问题描述
在 ubuntu 18.04 中,当我通过以下命令将默认 python 从 python 3.6 更改为其他版本时:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1
或者当我删除 python 3.6 并安装其他版本时 netplan apply
不起作用并导致此错误:
File "/usr/sbin/netplan",line 20,in <module>
from netplan import Netplan
File "/usr/share/netplan/netplan/__init__.py",line 18,in <module>
from netplan.cli.core import Netplan
File "/usr/share/netplan/netplan/cli/core.py",line 24,in <module>
import netplan.cli.utils as utils
File "/usr/share/netplan/netplan/cli/utils.py",line 25,in <module>
import netifaces
ModuleNotFoundError: No module named 'netifaces'
并且命令 pip install netifaces
有一些错误。
解决方法
我之前在 vagrant 上也遇到过同样的问题。如果使用 update-alternatives
使 python3 别名指向另一个版本的 Python,vagrant 将不起作用。您不能使用 update-alternatives
更改 Python3 的别名。
由于某种原因,我的 ubuntu 服务器更新后丢失了我的 python 配置,解决方法:
检查我是否可以在 CLI 上导入模块:
python
import python
在收到相同的消息后,我意识到我的 python 环境正在使用这些模块,即使它们全部显示为已安装,我继续“升级”python 模块:
python pip install --upgrade pip
python pip install --upgrade netifaces
python pip install --upgrade "any module you need to use for your script"
就像模块被识别更新并正确安装一样。