Kubuntu-Mantic系统卸载Python3.12后sudo执行Python脚本报错的排查与修复求助
Kubuntu-Mantic系统卸载Python3.12后sudo执行Python脚本报错的排查与修复求助
大家好,我遇到了一个棘手的问题,想请各位帮忙分析排查:
我之前在Kubuntu-Mantic上安装了Python3.12,用来运行Miniedit-WiFi工具,后来把它卸载了,只保留了系统默认的Python3.11。现在发现一个奇怪的现象:普通用户权限下运行Python脚本(比如TensorFlow的虚拟环境项目)都正常,但只要用sudo执行任何Python脚本(比如sudo python3 /path/to/script.py),系统就会报错,而且还在试图寻找已经卸载的Python3.12的路径。
具体的错误日志如下:
Could not find platform independent libraries <prefix> Could not find platform dependent libraries <exec_prefix> Python path configuration: PYTHONHOME = (not set) PYTHONPATH = (not set) program name = 'python3' isolated = 0 environment = 1 user site = 1 safe_path = 0 import site = 1 is in build tree = 0 stdlib dir = '/usr/local/lib/python3.12' sys._base_executable = '/usr/local/bin/python3' sys.base_prefix = '/usr/local' sys.base_exec_prefix = '/usr/local' sys.platlibdir = 'lib' sys.executable = '/usr/local/bin/python3' sys.prefix = '/usr/local' sys.exec_prefix = '/usr/local' sys.path = [ '/usr/local/lib/python312.zip', '/usr/local/lib/python3.12', '/usr/local/lib/python3.12/lib-dynload', ] Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding Python runtime state: core initialized ModuleNotFoundError: No module named 'encodings' Current thread 0x00007f5dbb036740 (most recent call first): <no Python frame>
我已经做了这些排查工作:
- 检查了
/etc/sudoers.d/目录下的所有配置文件,没有找到任何和Python3.12路径相关的配置 - 确认当前系统的Python路径是干净的,只有默认的Python3.11和Python3.7
这个问题是在我使用sudome工具给Pycharm里的Miniedit项目自动配置sudo权限之后出现的,卸载Python3.12并清理路径后,就出现了sudo执行Python脚本的异常。
想请教各位:这个错误的根源到底在哪里?有没有办法修复sudo环境下的Python路径,让它正确指向当前的Python3.11?
备注:内容来源于stack exchange,提问作者Kayemba Luwaga
相关产品推荐
相关产品推荐

