解决Linux下升级Python后No

事情始于我把debian9的Python3.5更新到了Python3.9,我采用的是源代码编译的方法,一般只要搜索debian升级python这几个关键词找到的方法都是这种。

编译还挺顺利,安装好之后就能用了

但是我在importpandas的时候遇到了问题

错误显示ImportError:Nomodulenamed_bz2

搜索了一阵之后找到了原因,原因是我系统中没有libbz2,所以在编译Python的时候没有把bz2编译进去。

可以去Python源代码目录再运行一次make,最后会提示bz2没有编译进去。根据不同人的机器情况,可能还会看到好几个库都没有编进去,比如我这里还有sqlite3等6个组件没有编译进去。

所以在编译之前,要先运行下这条指令,把该装的库都装上。

sudoapt-getinstalllibreadline-gplv2-devlibncursesw5-devlibssl-devlibsqlite3-devtk-devlibgdbm-devlibc6-devlibbz2-devlibffi-devzlib1g-dev

然后再make,你就会发现那些提升都没了。

之后重新运行

sudomakealtinstall

重新安装一下python3.9,这个问题就解决了。

或许有人会问为什么不能通过pip3installbz2或者_bz2来安装呢?

其实上面的解决方式已经说明了问题,这个库不是用python写的库,而是c语言写的系统动态库,这种库属于Python的底层库,得在编译Python阶段一起编译进去才能用。




转载请注明:http://www.aierlanlan.com/rzfs/4578.html