如何在CentOS 7上获取兼容Python3(适配Django2.0)的PyPy
如何在CentOS 7上获取兼容Python 3的PyPy(适配Django 2.0)
你之前编译出PyPy 2.7版本的核心原因是:PyPy源码仓库同时包含PyPy2和PyPy3的编译目标,而默认编译指令指向的是Python 2的目标文件。下面是针对CentOS 7的完整步骤,帮你编译出兼容Python 3的PyPy版本:
1. 先安装编译依赖
CentOS 7默认缺少部分编译PyPy3必需的工具和库,先执行以下命令补全:
sudo yum install -y mercurial gcc make zlib-devel openssl-devel bzip2-devel libffi-devel python3
这些包涵盖了版本控制工具、编译器,以及PyPy运行依赖的系统底层库。
2. 克隆PyPy源码仓库
和你之前的操作一致,克隆官方仓库:
hg clone http://bitbucket.org/pypy/pypy pypy cd pypy
如果你需要特定版本的PyPy3(Django 2.0支持Python 3.5+,推荐选择PyPy3.7及以上稳定分支),可以切换到对应分支:
hg checkout pypy3.7
3. 准备编译工具环境
我们可以直接用系统自带的Python 3来运行PyPy的编译工具rpython,先确保系统Python3有pip:
sudo python3 -m ensurepip --upgrade
4. 编译PyPy3(关键步骤)
进入编译目标目录,明确指定Python 3的编译入口文件:
cd pypy/goal python3 ../../rpython/bin/rpython --opt=jit targetpypy3.py
- 重点:
targetpypy3.py是PyPy3的专属编译入口,而默认的targetpypystandalone.py对应PyPy2,这就是你之前得到Python2版本的原因。 --opt=jit参数启用PyPy的JIT编译器,这是PyPy高性能的核心特性,建议保留。
编译过程耗时较长(根据服务器性能,通常30分钟到数小时),请耐心等待。
5. 验证编译结果
编译完成后,生成的PyPy3可执行文件会在类似/tmp/usession-default-*/build/pypy3-*的目录下(具体路径会在编译结束时输出),验证版本:
# 替换为你的实际路径 /tmp/usession-default-19/build/pypy3-centos7/bin/pypy --version
正常输出示例:
Python 3.7.13 (77787b8f63d5, Aug 15 2022, 17:05:02) [PyPy 7.3.9 with GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
6. 配置Django运行环境(可选)
创建PyPy3的虚拟环境并安装Django 2.0:
# 替换为你的PyPy3实际路径 /path/to/pypy3/bin/pypy -m venv /tmp/pypy3_venv source /tmp/pypy3_venv/bin/activate # 安装兼容的Django版本 pip install django==2.0
这样你就拥有了适配Django 2.0的PyPy3环境,可以正常开发和运行项目了。
内容的提问来源于stack exchange,提问作者arheops
相关产品推荐
相关产品推荐

