- 环境:suse 12 sp3 、python 3.6.4 、 django 2.0.2
- 背景:在Windows上开发,在Linux部署生产(我来了之后让我开始搞)
- 过程:该Linux自带python 3.4,由于环境需要,直接源码安装python 3.6.4 ,之后git 代码,安装虚拟环境,以及所需模块,一切顺利,启动,报错No module named _bz2
- 原因:pandas模块需要bz2的支持,而后来安装的python 3.6.4的版本不存在该文件,导致报错找不到该模块,模块名称是_bz2.cpython-36m-x86_64-linux-gnu.so
- 解决方法:由于该Linux自带python3.4所以我直接拿该版本的给3.6.4的版本用(需要改名)在下面目录下:/usr/lib64/python3.4/lib-dynload/_bz2.cpython-34m.so
将该文件复制到源码安装的python 3.6.4的相应目录下:
/usr/local/python3/lib/python3.6/lib-dynload/(这和我的安装路径有关系)并将名称改过来即可
注意:如果按照上述方式改完名,依然不行,注意你改的名字是否与该目录下其他so文件格式相同,若不同,请修改为相同样式,应该能解决你的问题,我目前所知,3.4和3.6的命名格式就不同。