代码之家  ›  专栏  ›  技术社区  ›  Adham Enaya

如何在谷歌云上安装ortools库

  •  0
  • Adham Enaya  · 技术社区  · 7 年前

    我在使用命令 pip install -t lib/ ortools ,图书馆 ortools 已安装到 lib/ 文件夹但当我在Google App Engine上部署包含该库的Flask项目时,我遇到了以下错误:

    (/base/alloc/tmpfs/dynamic_runtimes/python27g/931d17f05408b3ef/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py:263)
    Traceback (most recent call last):
      File "/base/alloc/tmpfs/dynamic_runtimes/python27g/931d17f05408b3ef/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle
        handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
      File "/base/alloc/tmpfs/dynamic_runtimes/python27g/931d17f05408b3ef/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
        handler, path, err = LoadObject(self._handler)
      File "/base/alloc/tmpfs/dynamic_runtimes/python27g/931d17f05408b3ef/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject
        obj = __import__(path[0])
      File "/base/data/home/apps/b~cidy-1539116366694/20190316t002011.416796594015344313/main.py", line 5, in <module>
        from ortools.constraint_solver import pywrapcp
      File "/base/data/home/apps/b~cidy-1539116366694/20190316t002011.416796594015344313/lib/ortools/constraint_solver/pywrapcp.py", line 17, in <module>
        _pywrapcp = swig_import_helper()
      File "/base/data/home/apps/b~cidy-1539116366694/20190316t002011.416796594015344313/lib/ortools/constraint_solver/pywrapcp.py", line 16, in swig_import_helper
        return importlib.import_module('_pywrapcp')
      File "/base/alloc/tmpfs/dynamic_runtimes/python27g/931d17f05408b3ef/python27/python27_dist/lib/python2.7/importlib/__init__.py", line 37, in import_module
        __import__(name)
    ImportError: No module named _pywrapcp
    
    0 回复  |  直到 7 年前
        1
  •  1
  •   Dan Cornilescu    7 年前

    第1代(Python 2.7)标准环境沙箱有非常严格的要求。在这方面尤其相关的是 Pure Python 一:

    Python运行时环境的所有代码都必须是纯Python,并且 不包括任何C扩展或其他必须编译的代码。

    这个 OR-tools 无法满足此要求,因为它们需要(特定于平台的)编译。从…起 their installation page :

    笔记 :您可以仅从该平台为任何受支持的平台从源代码生成或创建工具套件。或者工具Makefile不支持 为任何受支持的平台交叉编译。

    可以 仍然可以在GAE上使用它们:

    • 在第二代标准环境中(Python 3.7,更宽松的限制)-但我不确定是否支持pip驱动的包构建,以及是否提供了它所需的所有工具
    • 在灵活的环境中,最有可能使用 custom-built runtime 这使得您甚至可以添加非python依赖项——构建所需的额外库和工具 ortools .
        2
  •  0
  •   Laurent Perron    7 年前

    你在macOS或Linux上运行pip吗?如果在macOS上构建,请参阅 Using Homebrew Python on macOS?

    根据官方网站 OR-Tools Python ,我认为ortools取决于平台。

    当您使用平台依赖性python库时,最好使用pip安装-t lib/ortools。 在linux环境下。