如何在pypy沙盒中导入numpy

4

Pypy有一个numpy的分支。如何在pypy沙盒中使用它?

沙盒提示“没有名为numpy的模块”。

然而,当我尝试将numpy库复制到lib_pypy目录中时,我收到了这个错误消息。有没有一种方法可以在pypy沙盒中导入numpy?

import numpyTraceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/bin/lib_pypy/numpy/__init__.py", line 160, in <module>
raise ImportError(msg)
ImportError: Error importing numpy: you should not try to import numpy from
    its source directory; please exit the numpy source tree, and relaunch
    your python interpreter from there.
1个回答

3
抱歉,在沙盒模式下无法导入numpy,这几乎适用于所有扩展模块。PyPy的沙盒化是一个很好的概念验证,非常安全,但它只是一个概念验证。它需要有人去认真开发。在此之前,它只能用于“玩具”示例:导入几乎没有任何内容(或仅纯Python模块,递归地)的程序。

1
@yonexer 一位首席开发人员的权威回答。 - rth
已添加到常见问题解答中:http://pypy.readthedocs.org/en/latest/faq.html#module-xyz-does-not-work-in-the-sandboxed-pypy - Armin Rigo
未来是否有计划允许模块导入,并重新启用沙盒功能 (https://morepypy.blogspot.com/2019/08),或者从技术上来说根本不可能实现并永远不会实现? - orange
2019/08年的工作使沙盒功能更加强大,但仍然不能安全地导入具有C-API兼容性的随机C扩展模块。在某些假设的未来中,numpy 可能会被重写为除了大量C之外的其他格式(由pypy之外的人员完成),这将为在pypy中进行沙盒化(以及许多优化)打开大门。 - Armin Rigo

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