【Python坑爹错误】undefined symbol: "_Py_LegacyLocaleDetected"
程序员文章站
2022-05-26 23:46:14
...
环境
Centos 7系统,python36的版本。
复现场景
首先,我们有2台服务器,共用一套用户验证的,最近新装了一台服务器,也配置了共用那套用户验证,而且用户目录都是共用的同一台机器上的home
目录。
在原来的2台机器上,我的python环境用的是virtualenv
的虚拟环境,没什么问题。但是今天用了在新的服务器上,当我运行python
命令的时候,报以下错误:
python: symbol lookup error: python: undefined symbol: _Py_LegacyLocaleDetected
我一脸懵逼???
其他两台Centos 7能用,为啥这台就不能用?
Google了一下,基本没人遇到这个错误,有个答案是把~/venv/bin/python3
的这个删掉,再复制当前系统的/usr/bin/python3
到这个目录下。
刚才试了一下,又报另一个错误:
cannot create regular file: Input/Outpu error
我二脸懵逼???
查了一下,这个错误一般是没有root权限或者是硬盘出问题了,也有可能是nfs
引起的。
发现自己确实是nfs
挂载,不过我有root权限的。
无可奈何……
就新建了一个虚拟环境,试了一下python命令,可用。
然后想着既然从/usr/bin
下复制不过来,那我在新的虚拟环境里面复制一个,于是:
cp ~/nvenv/bin/python3 ~/venv/bin/python3
竟然成功了!!!
然后我就把新的虚拟环境删掉了。
解决方法
尝试复制该服务器的/usr/bin/python3
到虚拟目录,如果失败。就试一下我的解决办法。
问题原因
不知道啥原因,猜测一下可能有如下多个原因:
- 我原来的服务器的python版本为3.6.3,新服务器版本为3.6.7,就差几个小版本,也会有问题吗??
- 目录是
nfs4
格式挂载上去的,而且Centos7系统开了SELinux。说到SELinxu,今年中美……两开花……。这东西的用处相比于它导致的繁琐来说,性价比太低了,所以最好还是关了吧。
另外有大佬知道原因的,请告诉我一下。
上一篇: 生成异常日志
下一篇: 搞点事情,使用node搭建反向代理