django-storages 和 boto 配置不当
我在用Django搭建的网站上传文件时遇到了这个错误:
ImproperlyConfigured at /~~~
Could not load Boto's S3 bindings.
See https://github.com/boto/boto
我调查了一下,发现这行代码from boto import __version__ as boto_version
出错了。如果把周围的try-catch语句去掉,就会出现这个错误:
Error importing module storages.backends.s3boto: "cannot import name __version__"
这个错误通常表示有循环导入的问题,但我找不到这样的情况。使用Django的命令行工具(通过python manage.py shell
启动),我可以正常导入和使用boto和S3BotoStorage,没问题。我无法在页面渲染之外重现这个错误。
我安装了最新版本的boto和django-storages,并且在INSTALLED_APPS里添加了storages。
$ pip show boto django-storages
---
Name: boto
Version: 2.30.0
...
---
Name: django-storages
Version: 1.1.8
...
$ python manage.py shell
>>> import boto
>>> boto.__version__
'2.30.0'
>>> from storages.backends.s3boto import S3BotoStorage
>>> b = S3BotoStorage()
>>> b.get_available_name('foo')
'foo'
$ cat settings.py | grep 'storages'
INSTALLED_APPS += ('storages',)
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
这个错误是怎么产生的,怎么解决呢?谢谢你们的帮助。
1 个回答
4
我也遇到过同样的问题,不太清楚为什么这样做就解决了,但我把boto升级到了2.31.1版本,结果一切又正常了。希望这对你有帮助:
pip install boto --upgrade