You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:43:54