PyPy沙盒:无法导入rpython模块

3
我正在尝试使用PyPy创建一个具有受限访问权限的服务器端沙盒,以限制对我的文件系统的访问。我正在使用Ubuntu 12.04 64位机器,并一直尝试从这里安装PyPy的完整源代码:http://pypy.org/download.html#sandboxed-version(滚动到“从源代码构建”的部分)。
我的问题是,每当我尝试运行pypy_interact.py(位于pypy/pypy/sandbox中)时,都会出现以下错误:
ImportError: No module named 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,所以我不太确定如何解决这个问题/还不太了解导入(import)。有什么建议吗?非常感谢。


也许可以接受我的答案? :) - Tobias
1个回答

5

Rpython通常期望您设置PYTHONPATH,其中包括您的pypy checkout的根目录,并且不要干扰sys.path

因此,您通常通过以下方式调用脚本:

PYTHONPATH=$PYTHONPATH:path/to/pypy/source path/to/pypy_interact.py

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接