0

我最近上传了一个使用 Zappa 的 Django 应用程序,它运行得非常好。

现在,我想更新这个应用程序,它突然给了我这个错误:(我所做的更改并没有那么多,在我的 models.py 中删除了一个空白 = True)

ModuleNotFoundError: No module named '_cffi_backend'
Traceback (most recent call last):
  File "/var/task/handler.py", line 657, in lambda_handler
    return LambdaHandler.lambda_handler(event, context)
  File "/var/task/handler.py", line 251, in lambda_handler
    handler = cls()
  File "/var/task/handler.py", line 160, in __init__
    wsgi_app_function = get_django_wsgi(self.settings.DJANGO_SETTINGS)
  File "/var/task/zappa/ext/django_zappa.py", line 21, in get_django_wsgi
    return get_wsgi_application()
  File "/tmp/mysite/django/core/wsgi.py", line 12, in get_wsgi_application
    django.setup(set_prefix=False)
  File "/tmp/mysite/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/tmp/mysite/django/apps/registry.py", line 122, in populate
    app_config.ready()
  File "/tmp/mysite/core/apps.py", line 8, in ready
    from core import signals
  File "/tmp/mysite/core/signals.py", line 1, in <module>
    import cairosvg
  File "/tmp/mysite/cairosvg/__init__.py", line 26, in <module>
    from . import surface  # noqa isort:skip
  File "/tmp/mysite/cairosvg/surface.py", line 9, in <module>
    import cairocffi as cairo
  File "/tmp/mysite/cairocffi/__init__.py", line 17, in <module>
    from ._generated.ffi import ffi
  File "/tmp/mysite/cairocffi/_generated/ffi.py", line 2, in <module>
    import _cffi_backend

我使用一个包CairoSVG,当禁用它时,我的应用程序再次工作。奇怪的是我在以前的版本中也使用了这个包,没有任何问题。

zappa update dev当用它更新时,我会看到:

Calling update for stage dev..
Downloading and installing dependencies..
 - reportlab==3.6.6: Using locally cached manylinux wheel
 - pyproj==3.3.0: Using locally cached manylinux wheel
 - psycopg2-binary==2.9.3: Using locally cached manylinux wheel
'releases'
Packaging project as gzipped tarball.

我注意到在以前的更新中,有一个名为“cffi”的第四个依赖项,但现在已经消失了。

我不知道它是如何消失的以及这些依赖项来自何处,因为我的 requirements.txt 中有更多内容

4

1 回答 1

0

不完全知道出了什么问题,但我通过以下方式修复了它:

  1. 完全删除我的虚拟环境
  2. 创建一个新的。
  3. 安装软件包pip install -r requirements.txt --no-cache-dir

--no-cache-dir真的很重要。

于 2022-02-09T11:13:58.727 回答