Django 无法加载Boto3';S3绑定

Django 无法加载Boto3';S3绑定,django,python-3.x,amazon-s3,boto3,boto,Django,Python 3.x,Amazon S3,Boto3,Boto,我正在向Heroku部署一个Django==2.1.2和Python==3.6.5的应用程序,我想用AmazonS3管理媒体和静态文件 以下是我的设置.py: INSTALLED_APPS = ( ... 'storages', ) AWS_STORAGE_BUCKET_NAME = '****' AWS_ACCESS_KEY_ID = '***' AWS_SECRET_ACCESS_KEY = '***' AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazo

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

以下是我的设置.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'
以下是我的自定义文件\u 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
中的“
File”/app/.heroku/python/lib/python3.6/site packages/storages/backends/s3boto3.py”
32raise配置不当(“无法加载Boto3的S3绑定。\n”
异常类型:在/registro处配置不正确/
异常值:无法加载Boto3的S3绑定。
看见https://github.com/boto/boto3
我不知道怎么修理它 有人能帮我吗?
提前感谢。

您是否记得先用boto3冻结一个新的requirements.txt文件,并在推送到heroku之前提交?

通常,此错误意味着django storages添加到S3(使用boto3)无法加载库boto3botocore

此错误在运行时出现,然后您第一次尝试使用S3存储(或仅导入S3boto3存储文件S3boto3存储

要获得更多详细信息,您可以在引发异常的行(在您的示例中是文件s3boto3.py中的第32行,在我的示例中也是如此)设置断点(如果IDE支持,可以在evaluate表达式中设置断点,或者以任何其他方式,比如运行python命令行并逐个执行命令)在代码块中导入的内容请尝试,直到您获得ImportError-并查看详细信息以了解原因)

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


换句话说,你只需要理解这段代码中的hapens,并理解导入的错误之处,因为真正在这里抛出异常配置不当,消息是
无法加载boto3的S3绑定。
只是隐藏了先前抛出的详细信息ImportError

是的,我已经运行了
pip freeze
添加到requirements.txt