【问题标题】:Could not load Boto3's S3 bindings无法加载 Boto3 的 S3 绑定
【发布时间】:2019-03-20 06:14:43
【问题描述】:

我正在向 Heroku 部署一个 Django==2.1.2 和 Python==3.6.5 应用程序,我想使用 Amazon S3 管理媒体和静态文件。

这是我的 settings.py:

INSTALLED_APPS = (
    ...
    'storages',
)

AWS_STORAGE_BUCKET_NAME = '****'
AWS_ACCESS_KEY_ID = '***'
AWS_SECRET_ACCESS_KEY = '***'
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' %  AWS_STORAGE_BUCKET_NAME

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

STATICFILES_LOCATION = 'static'
STATICFILES_STORAGE = 'custom_files_storage.StaticFilesStorage'

MEDIAFILES_LOCATION = 'media'
MEDIAFILES_STORAGE = 'custom_files_storage.MediaFilesStorage'

这是我的 custom_files_storage.py:

from django.conf import settings
from storages.backends.s3boto3 import S3Boto3Storage

class MediaFilesStorage(S3Boto3Storage):
    location = settings.MEDIAFILES_LOCATION

class StaticFilesStorage(S3BotoStorage):
    location = settings.STATICFILES_LOCATION

我跑了:

pip install boto

pip install boto3

pip install django-storges

我尝试过使用 boto 和 boto3,但错误仍然存​​在

这是错误输出:

File "/app/.heroku/python/lib/python3.6/site-packages/storages/backends/s3boto3.py" in <module>
  32.     raise ImproperlyConfigured("Could not load Boto3's S3 bindings.\n"

Exception Type: ImproperlyConfigured at /registro/
Exception Value: Could not load Boto3's S3 bindings.
See https://github.com/boto/boto3

我不知道如何解决它 有人可以帮助我吗? 提前致谢。

【问题讨论】:

    标签: django python-3.x amazon-s3 boto3 boto


    【解决方案1】:

    你还记得先用 boto3 pip freeze 一个新的 requirements.txt 文件,然后在推送到 heroku 之前提交吗?

    【讨论】:

    • 是的,我已经运行 pip freeze 添加到 requirements.txt
    【解决方案2】:

    一般来说,这个错误意味着 django-storges addapter to S3 (使用 boto3) 无法加载库 boto3botocore

    此错误在运行时引发,然后您第一次尝试使用 S3 存储(或仅导入 S3Boto3StorageFileS3Boto3Storage

    要获取更多详细信息,您可以在异常引发的行设置断点(如果可以运行调试)(在您的情况下 文件 s3boto3.py 中的第 32 行,在我的情况下相同)和逐行尝试导入(例如,如果您的 IDE 支持,则在评估表达式中或以任何其他方式,例如在 python 命令行中运行它并逐个执行命令)在块 中的代码中导入的内容尝试直到你得到 ImportError - 并查看详细原因)

    如果由于某种原因无法使用上述方法,您可以修改此文件(s3boto3.py),以便打印发出的 ImportError 的详细信息

    换句话说,您只需要了解这一小段代码中发生的情况,并了解导入出了什么问题,因为真的在这里抛出异常 ImproperlyConfigured 并带有 Could not load boto3's S3 bindings. 的消息只是隐藏了之前抛出的细节 ImportError

    【讨论】:

      猜你喜欢
      • 2012-05-21
      • 2013-04-15
      • 2012-11-02
      • 2016-02-12
      • 2016-08-26
      • 2010-12-12
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      相关资源
      最近更新 更多