无法加载 Boto3 的 S3 绑定

Alb*_*nez 5 django amazon-s3 boto python-3.x boto3

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

这是我的设置.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'
Run Code Online (Sandbox Code Playgroud)

这是我的 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
Run Code Online (Sandbox Code Playgroud)

我跑过:

pip install boto

pip install boto3

pip install django-storges
Run Code Online (Sandbox Code Playgroud)

我尝试过 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
Run Code Online (Sandbox Code Playgroud)

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

小智 4

我遇到过同样的问题。我通过将“boto3”包和版本添加到 pipfile(运行 pipelinev lock)然后推送到 Heroku 来解决这个问题。