PyPy Sandbox:无法导入rpython模块

时间:2013-07-23 02:42:39

标签: python sandbox pypy

我正在尝试使用PyPy创建一个对我的文件系统具有有限访问权限的服务器端沙箱。我正在使用Ubuntu 12.04 64位机器,并且一直在尝试从这里安装PyPy的完整源代码:http://pypy.org/download.html#sandboxed-version(向下滚动到“从源代码构建”一节)。

我的问题是,每当我尝试运行pypy_interact.py(位于pypy / pypy / sandbox)时,我都会收到以下错误:

ImportError:没有名为rpython.translator.sandbox.sandlib

的模块

无法导入的模块具有以下路径:pypy / rpython / translator / sandbox / sandlib.py。 pypy_interact.py的内容如下:

import sys, os
sys.path.insert(0, os.path.realpath(os.path.join(os.path.dirname(__file__), '..\
', '..', '..')))
from rpython.translator.sandbox.sandlib import SimpleIOSandboxedProc
from rpython.translator.sandbox.sandlib import VirtualizedSandboxedProc
from rpython.translator.sandbox.vfs import Dir, RealDir, RealFile
import pypy
LIB_ROOT = os.path.dirname(os.path.dirname(pypy.__file__))

我觉得这是一个非常简单的修复 - 我几天前刚刚开始学习Python,所以我不确定如何解决问题/不太了解进口。有什么建议?非常感谢。

1 个答案:

答案 0 :(得分:5)

Rpython通常希望您将PYTHONPATH设置为包含您的pypy checkout的根,而不是弄乱sys.path

所以你通常通过

调用脚本
PYTHONPATH=$PYTHONPATH:path/to/pypy/source path/to/pypy_interact.py