错误描述
当运行 Python 3 时遇到以下错误:
python3: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
这个错误表明系统找不到 libpython3.6m.so.1.0 这个共享库文件。
原因分析
缺少 libpython3.6m.so.1.0 的原因可能有以下几种:
未安装 Python 3.6 的开发包:
- libpython3.6m.so.1.0 是 Python 3.6 的共享库文件,通常包含在 Python 3.6 的开发包中。如果没有安装 Python 3.6 的开发包(例如 python36-devel),系统中就不会有这个文件。
手动编译 Python 3.6 时未启用共享库:
- 如果手动编译了 Python 3.6,但没有使用 --enable-shared 选项,编译过程不会生成共享库文件。
系统路径配置问题:
- 即使安装了共享库文件,如果系统路径配置不正确,系统也可能找不到这个文件。例如,LD_LIBRARY_PATH 环境变量没有包含共享库文件的路径。
包管理器问题:
- 某些 Linux 发行版的包管理器可能没有提供 Python 3.6 的共享库包,或者包名不同,导致无法通过包管理器直接安装。
虚拟环境配置问题:
- 如果在一个虚拟环境中工作,并且虚拟环境中的 Python 版本与系统中的 Python 版本不一致,可能会导致共享库文件找不到的问题。
处理
经过排查,发现原因是 虚拟环境配置问题。具体来说,系统中使用的 Python 版本为 3.7,而虚拟环境中的 Python 版本为 3.6,因此导致了 libpython3.6m.so.1.0 找不到的问题。
解决方式:
- 创建新的虚拟环境
- 进行python降级