【问题标题】:GAE Python PyML ImportError: No module named _ckernelGAE Python PyML ImportError:没有名为 _ckernel 的模块
【发布时间】:2015-09-02 09:45:29
【问题描述】:

我正在尝试在 Google App Engine 上导入 PyML 作为另一个库的要求,但是我收到以下导入错误:

  File "/base/data/home/apps/s~myapp/uno.385079313378714244/PyML/__init__.py", line 4, in <module>
from PyML.containers import *
  File "/base/data/home/apps/s~myapp/uno.385079313378714244/PyML/containers/__init__.py", line 3, in <module>
VectorDataSet = __import__('PyML.containers.vectorDatasets', fromlist=['']).VectorDataSet
  File "/base/data/home/apps/s~myapp/uno.385079313378714244/PyML/containers/vectorDatasets.py", line 5, in <module>
from PyML.containers.baseDatasets import WrapperDataSet, BaseVectorDataSet
  File "/base/data/home/apps/s~replimeapp/uno.385079313378714244/PyML/containers/baseDatasets.py", line 4, in <module>
from PyML.containers import ker
  File "/base/data/home/apps/s~myapp/uno.385079313378714244/PyML/containers/ker.py", line 6, in <module>
from ext import ckernel
  File "/base/data/home/apps/s~myapp/uno.385079313378714244/PyML/containers/ext/ckernel.py", line 25, in <module>
_ckernel = swig_import_helper()
  File "/base/data/home/apps/s~myapp/uno.385079313378714244/PyML/containers/ext/ckernel.py", line 17, in swig_import_helper
import _ckernel
ImportError: No module named _ckernel

我在网上搜索过这个错误,可以找到其他有问题的人,但是没有给出答案。

更新 导致错误的代码:

from sys import version_info
if version_info >= (2,6,0):
  def swig_import_helper():
    from os.path import dirname
    import imp
    fp = None
    try:
        fp, pathname, description = imp.find_module('_ckernel', [dirname(__file__)])
    except ImportError:
        import _ckernel
        return _ckernel
    if fp is not None:
        try:
            _mod = imp.load_module('_ckernel', fp, pathname, description)
        finally:
            fp.close()
        return _mod
  _ckernel = swig_import_helper()
  del swig_import_helper
else:
  import _ckernel
del version_info

【问题讨论】:

    标签: python google-app-engine pyml


    【解决方案1】:

    该代码似乎正在使用 swig。 Appengine 运行时沙箱将基于“c”的二进制库限制为受支持的集合。 Swig 通常意味着编译后的 C/C++ 包装在 Python 中。所以看起来这不能在appengine上运行,除非他们有一个纯python选项。

    您可以在托管 VM 下运行它。

    您可能应该返回并阅读 appengine Python 沙箱及其限制以及哪些直接支持的 3rd 方库可用。

    【讨论】:

    • 嗯,这令人失望。托管虚拟机是什么意思?有什么资源可以参考我吗?否则将在 Heroku 上作为“API”运行应用程序是一种解决方案吗?
    • cloud.google.com/appengine/docs/managed-vms 但只要搜索 appengine 托管的虚拟机就会为您找到相同的链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 2015-12-09
    • 2012-01-26
    • 2020-12-15
    • 2015-11-17
    相关资源
    最近更新 更多