首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >翻译过程中PyPy、RPython和Python版本的兼容性

翻译过程中PyPy、RPython和Python版本的兼容性
EN

Stack Overflow用户
提问于 2022-10-31 15:37:02
回答 1查看 25关注 0票数 0

我正在尝试使用RPython 3.*包来翻译PyPy程序,就像它出现在下载页面上一样。

我只能使用2.7 RPython版本来翻译我的简单PyPy程序,而不能使用任何进一步的版本。我的RPython程序:

代码语言:javascript
复制
import os
import sys

def entry_point(argv):
    os.write(1, bytes("Hello World!\n", "utf-8"))
    return 0


def target(*args):
    return entry_point, None

我的脚本下载源代码和二进制文件并运行翻译命令:

代码语言:javascript
复制
#!/bin/bash
set -e

function get_pypy(){
  VERSION=$1
  rm -fr "${VERSION}-src.tar.bz2" "${VERSION}-osx64.tar.bz2" "${VERSION}-osx64" "${VERSION}-src"
  wget -S "https://downloads.python.org/pypy/${VERSION}-src.tar.bz2" && tar -xvf "${VERSION}-src.tar.bz2"
  wget -S "https://downloads.python.org/pypy/${VERSION}-osx64.tar.bz2" && tar -xvf "${VERSION}-osx64.tar.bz2"
}

function run_translate(){
  VERSION=$1
  FILENAME=$2
  "${PWD}/${VERSION}-osx64/bin/pypy" "${PWD}/${VERSION}-src/rpython/bin/rpython" "${PWD}/${FILENAME}"
}

# 3.9
VERSION=pypy3.9-v7.3.9
get_pypy "${VERSION}"
run_translate "${VERSION}" "hello_world.py"

在运行它时,我会得到以下错误:

代码语言:javascript
复制
 File "/Users/kimchi/git-repos/side-projects/bf.meta.tracing/scripts/python-versions/pypy3.9-v7.3.9-src/rpython/bin/rpython", line 17
    print __doc__
    ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(__doc__)?

源链接

看起来Python3.9正在抱怨Python2.7 print语句。但它们都是从3.9个来源下载的。

(如有任何帮助,将不胜感激:)

从我到目前为止所看到的(关于这一点的文档已经过时了),有两种方法可以运行转换过程:

代码语言:javascript
复制
pypy ./rpython/bin/rpython program.py
# AND
python ./rpython/translator/goal/translate.py program.py

有什么不同吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-01 14:38:28

因为RPython是python2语言的衍生物,所以您必须使用python2.7 ( CPython python2.7或PyPy 2.7)来翻译。如果文件中有明确规定的地方,请指出。例如,这里是它明确声明RPython构建在python2上的一个地方。

下载的源代码将构建python3.9解释器,但代码是RPython (即python2),就像RPython 3.9的代码是用C编写的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74265676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档