Python基金会今日发布了Python 3.11,更新中介绍CPython的性能得到了大幅提升。为了优化服务器性能,我打算将Python后端的服务全部改用到Python 3.11。
服务器上运行的是Debian bullseye,apt源的Python固定在3.9,因此如果想要用Python 3.11,必须自己编译。恰巧之前为了适配OJ的需要我自己经常编译Python,于是我按照一贯的路线进行编译。
首先,到 python.org 或镜像站下载源码并解压。
然后,进行 configure 并 make。习惯上,我一般加上 --enable-optimizations
获得优化。
之后,就是到相应的目录安装虚拟环境和 requirements。
本以为到此处大功告成,结果在运行 MyUNIV 时报错。看了一下,是 pandas 模块在调用 bz2 这个模块时找不到。然而,pypi中并没有 bz2
这个模块。
上网搜索了一下,发现这是自编译 Python 时依赖不全导致的。在安装 Python 前,应当补全依赖。
对于Debian/Ubuntu,可以用以下 apt 命令补全。
而对于其他的系统,可以访问 Home · pyenv/pyenv Wiki · GitHub 网站查看。
重新编译后,就正常运行了。