问题标签 [rpython]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6066 浏览

python - PyPy/RPython 可以用来生成一个小的独立可执行文件吗?

(或者,“PyPy/RPython 可以在不需要 Python 运行时的情况下将Python 编译/翻译成 C/C++吗?”)

我试图用它的 RPython 和它的 Python、它的运行、它的编译和它的翻译来理解 PyPy,但有些失败。

我有一个假设的 Python 项目(适用于 Windows);我想保持它的大小,大约为一百千字节(ONO),而不是使用 py2exe 需要的几兆字节(在 UPX 之后)。我可以以任何方式使用 PyPy 1来生成不依赖 Python26.dll 的独立可执行文件吗?如果可以的话,它是否需要遵循 RPython 的限制,比如for只处理内置类型,还是它是完整的 Python 语法?

我确实意识到,如果可以做到这一点,我几乎肯定不能直接使用 Python 中的 C 模块。


1 (自从询问以来,情况变得更加清晰,工具链的这一部分被更清楚地标记为 RPython 而不是 PyPy;在 2010 年并非如此。)

0 投票
2 回答
530 浏览

pypy - PyPy 翻译错误

我希望这是这个问题的正确位置。我正在尝试编写一个简单的支持 JIT 的解释器。但是,在翻译方面我遇到了一个奇怪的错误。我几乎逐字复制了 JavaScript 示例解析器,但这是我的问题:

首先,这是解析器(几乎 100% 像 JS 示例):

和我的语法:

我正在执行以下操作以将代码编译为 c:

我错过了什么?这看起来很直接......

0 投票
1 回答
743 浏览

python - 在 pypy 翻译期间指定已安装的本机库路径

我正在尝试在 Mac 机器上构建最新的 pypy 存储库。所需的库之一 libintl 安装在$HOME/opt/local/lib. 我运行(使用以前构建的pypy-c),

然而,大约半小时后,它停止了

那么我应该如何指定这个库的路径呢?我假设编译和执行自定义 rpython 程序也会发生同样的情况。

0 投票
1 回答
205 浏览

interpreter - 使用 PyPy 翻译工具链制作了哪些解释器?

除了 PyPy 本身,还使用 ​​PyPy Translator Toolchain 制作了哪些解释器?

0 投票
1 回答
1192 浏览

python - RPython 支持生成器吗?

RPython 是否支持生成器,因为我刚刚在 PyPy 的文档中读到一些内容说它们不支持

PyPy Doc - 编码指南

它们似乎很容易被翻译成像 C 这样的静态类型语言,因为每个生成步骤都是在函数调用中生成的。

有人可以解释为什么吗?或者对这个主题有更多的了解。我目前正在尝试学习编写 RPython 安全代码的基础知识。

0 投票
2 回答
1674 浏览

python - RPython 中的静态类型是什么?

人们经常说RPython(Python 的一个子集)是静态类型的。(例如在维基百科上。)

最初,我想知道他们如何将其添加到 Python 中,并认为他们可能已经添加了添加语句的要求,例如assert isinstance(arg1, ...)在每个函数的开头(但我真的不敢相信)。

然后我查看了一些 RPython 代码,它看起来根本不是静态类型的。在许多情况下,编译器可能可以证明函数参数只能是某些类型,但绝对不是在所有情况下。

例如,这是 RPython 的实现string.split

在有关 RPython 的 PyPy 文档中,它说:“变量应该包含最多一种类型的值”。

那么,函数参数也算作变量吗?或者在什么意义上 RPython 是静态类型的?或者这实际上是错误的?

0 投票
0 回答
1241 浏览

python - 使用 python 2.6、R2.14 和 Win 7x64 错误导入 Rpy

我正在尝试将 rpy 导入 python。我不断收到此错误。

我查看了论坛,发现以下主题具有相同的问题。遵循有人在那里推荐的内容,但我仍然遇到同样的错误。我有 Rpy 1.0.3、Python 2.6、R2.14 和 Windows 7 x64。我也有 numpy 1.6.1 和 pywin32 build 216 per 由 rpy 站点推荐用于 Windows 安装。

将rpy模块导入python

R 在路径中,并且仍然发生相同的错误。

添加了 x64 R.exe 的路径。也像上面的帖子一样进入并添加了额外的+。仍在命令行中运行,但现在出现新错误。

Traceback(最近一次调用最后一次):
文件“”,第 1 行,在
import rpy
文件“E:\Python26\Lib\site-packages\rpy.py”,第 101 行,在
raise RuntimeError("Unable to locate R.dll在 %s" % RHOME) 运行时错误
:无法在 C:\Program Files\R\R-2.14.0 中找到 R.dll

将在堆栈中搜索 R.dll 的其他错误。似乎也有2个R.dll。一个在 i386 中,一个在 x64 中。

在 rpy.py 中找到

如果 sys.platform=='win32': 导入 win32api os.environ['PATH'] += ';' + os.path.join(RHOME,'bin')

所以我在'bin'之后添加了'i386','x64','R.dll'。即使我告诉它在哪里看,仍然是同样的错误。在编辑“rinterface/ init .py”时找到了一些东西,但我找不到这个文件。当然,对于 rpy2 似乎遇到了同样的问题。

嗯,不知道我改变了什么,但现在我得到以下

回溯(最后一次调用):
文件“”,第 1 行,在
import rpy
文件“E:\Python26\lib\site-packages\rpy.py”,第 106 行,在
win32api.LoadLibrary(Rlib)中
错误:(126 , 'LoadLibrary', '找不到指定的模块。')

在 x64 模式下尝试过。收到 loadlibrary 无法在 x64 中工作的错误,因为它是一个 win32 模块。回到 i386,因此得到一个错误,说 rpy 无法与 R2.14.0 一起使用。打算尝试旧版本的R。

经过进一步审查,我是个白痴。我下载了 rpy2,做了同样的更改,它就像一个魅力。

0 投票
2 回答
12007 浏览

python - PyPy 会自行翻译吗?

我说得对吗?PyPy 解释器是否真的解释自己然后翻译自己?

所以这是我目前的理解:

  • RPython 的工具链涉及部分执行要翻译的程序,以获得一种预处理版本来注释和翻译。
  • 运行在 CPython 之上的 PyPy 解释器执行以部分解释自身,此时它将控制权交给它的 RPython 一半,后者执行翻译?

如果这是真的,那么这是我见过的最令人费解的事情之一。

0 投票
1 回答
500 浏览

python - RPython sys 方法不起作用

我有以下代码:

但是,当我运行时,出现python ./pypy/pypy/translator/goal/translate.py t.py以下错误:

实际上还有更多错误,但我认为只有最后一部分是相关的。如果您认为更多内容可能会有所帮助,请发表评论,我将进行编辑。

事实上,当我用更简单的东西(如 sys.stdout.write)替换 sys.exit 时,我得到了另一个错误。

给我:

sys 方法是否只是 RPython 的禁区?对我来说这似乎有点奇怪,因为 exit 和 stdout 在 C 中很容易使用。但是,错误消息看起来可能是关于不同的事情,所以我可能只是在错误的树下吠叫。

目前,我正在使用指南大致了解 RPython 中允许和不允许的内容。是否有其他可访问的参考资料可供我使用以获取更多信息?

0 投票
1 回答
340 浏览

django - 在 django 应用程序中使用 rpy 会引发 RPy_Exception: R Function "get" not found

这是回溯(复制粘贴):

有什么线索吗?

编辑:这是代码

不要误会我的意思,这是错误所在的行。我尝试了一个单独的 python 提示并且import rpy没有失败。只有在网站上它失败了。为什么?