1

Webports 在 ports 目录中有 Python 项目和几个 Python 模块,包括 NumPy。“python”端口编译一个在控制台窗口中运行 Python 解释器的 Chrome 应用程序。我希望能够在该解释器中使用包含本机代码的模块,例如 NumPy。

这是我尝试过的:

  • make numpy其次make python(希望 Python 构建过程看到我已经构建了 NumPy 并包含它),这似乎没有改变任何东西
  • 构建 python-static 包,该包失败并显示以结尾的巨大错误消息libppapi_simple_cpp.a: error: undefined reference to 'PSUserMainGet'
  • 复制out/build/numpy/numpy-1.8.0/numpy/到 Python 应用程序中的site-packages文件夹中pydata.tarimport numpy失败并显示一条错误消息,告诉我不要从其源目录导入 NumPy。
  • 复制out/build/numpy/numpy-1.8.0/build/lib.linux-x86_64-2.7/numpy/(其中似乎已编译 .so 文件)到 .so 中的site-packages文件夹中pydata.tarimport numpy此回溯失败:

    >>> import numpy
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/lib/python2.7/site-packages/numpy/__init__.py", line 153, in <module>
        from . import add_newdocs
      File "/lib/python2.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
        from numpy.lib import add_newdoc
      File "/lib/python2.7/site-packages/numpy/lib/__init__.py", line 8, in <module>
        from .type_check import *
      File "/lib/python2.7/site-packages/numpy/lib/type_check.py", line 11, in <module>
        import numpy.core.numeric as _nx
      File "/lib/python2.7/site-packages/numpy/core/__init__.py", line 6, in <module>
        from . import multiarray
    ImportError: cannot import name multiarray
    

我在pepper_47Docker 容器中使用 PNaCL 工具链版本来构建包,并且我在 Xubuntu 上的 Chrome 47.0.2526.106(64 位)上运行 Python 应用程序。

4

1 回答 1

1

原始python端口没有捕获它,但 numpy 端口被设计为与python-static端口一起使用,它将使用之前构建的模块进行构建。然后这将组装一个统一的静态库,该库将链接到.pexefor python。您不需要手动复制任何模块组件。

于 2016-01-02T19:16:09.550 回答