我正在尝试使用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,所以我不确定如何解决问题/不太了解进口。有什么建议?非常感谢。
答案 0 :(得分:5)
Rpython通常希望您将PYTHONPATH
设置为包含您的pypy checkout的根,而不是弄乱sys.path
。
所以你通常通过
调用脚本PYTHONPATH=$PYTHONPATH:path/to/pypy/source path/to/pypy_interact.py