Django python 3中的S3BOtograge

Django python 3中的S3BOtograge,django,amazon-s3,python-3.4,Django,Amazon S3,Python 3.4,我已经将Django项目设置为将静态文件和用户上传的文件存储到AmazonS3中。为了实现这一点,我遵循了下面的示例: prod.py INSTALLED_APPS += ('storages',) AWS_STORAGE_BUCKET_NAME = "project" STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage' S3_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAG

我已经将Django项目设置为将静态文件和用户上传的文件存储到AmazonS3中。为了实现这一点,我遵循了下面的示例:

prod.py

INSTALLED_APPS += ('storages',)
AWS_STORAGE_BUCKET_NAME = "project"
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
S3_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
STATIC_URL = S3_URL
但是,当我尝试运行
manage.py collectstatic-v 0--noinput
时,我得到以下错误:

 Traceback (most recent call last):
   File "/home/ubuntu/.virtualenvs/project/lib/python3.4/site-packages/storages/backends/s3boto.py", line 7, in <module>
     from cStringIO import StringIO
 ImportError: No module named 'cStringIO'

 During handling of the above exception, another exception occurred:

 Traceback (most recent call last):
   File "/home/ubuntu/webapps/project/manage.py", line 14, in <module>
     execute_from_command_line(sys.argv)
   File "/home/ubuntu/.virtualenvs/project/lib/python3.4/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
     utility.execute()
   File "/home/ubuntu/.virtualenvs/project/lib/python3.4/site-packages/django/core/management/__init__.py", line 377, in execute
     self.fetch_command(subcommand).run_from_argv(self.argv)
   File "/home/ubuntu/.virtualenvs/project/lib/python3.4/site-packages/django/core/management/__init__.py", line 238, in fetch_command
     klass = load_command_class(app_name, subcommand)
   File "/home/ubuntu/.virtualenvs/project/lib/python3.4/site-packages/django/core/management/__init__.py", line 42, in load_command_class
     return module.Command()
   File "/home/ubuntu/.virtualenvs/project/lib/python3.4/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 58, in __init__
     self.storage.path('')
   File "/home/ubuntu/.virtualenvs/project/lib/python3.4/site-packages/django/utils/functional.py", line 224, in inner
     self._setup()
   File "/home/ubuntu/.virtualenvs/project/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 391, in _setup
     self._wrapped = get_storage_class(settings.STATICFILES_STORAGE)()
   File "/home/ubuntu/.virtualenvs/project/lib/python3.4/site-packages/django/core/files/storage.py", line 303, in get_storage_class
     return import_string(import_path or settings.DEFAULT_FILE_STORAGE)
   File "/home/ubuntu/.virtualenvs/project/lib/python3.4/site-packages/django/utils/module_loading.py", line 26, in import_string
     module = import_module(module_path)
   File "/home/ubuntu/.virtualenvs/project/lib/python3.4/importlib/__init__.py", line 109, in import_module
     return _bootstrap._gcd_import(name[level:], package, level)
   File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
   File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
   File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
   File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
   File "<frozen importlib._bootstrap>", line 1129, in _exec
   File "<frozen importlib._bootstrap>", line 1471, in exec_module
   File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
   File "/home/ubuntu/.virtualenvs/project/lib/python3.4/site-packages/storages/backends/s3boto.py", line 9, in <module>
     from StringIO import StringIO  # noqa
 ImportError: No module named 'StringIO'
回溯(最近一次呼叫最后一次):
文件“/home/ubuntu/.virtualenvs/project/lib/python3.4/site packages/storages/backends/s3boto.py”,第7行,在
从cStringIO导入StringIO
ImportError:没有名为“cStringIO”的模块
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“/home/ubuntu/webapps/project/manage.py”,第14行,在
从命令行(sys.argv)执行命令
文件“/home/ubuntu/.virtualenvs/project/lib/python3.4/site packages/django/core/management/__init___;.py”,第385行,从命令行执行
utility.execute()
文件“/home/ubuntu/.virtualenvs/project/lib/python3.4/site packages/django/core/management/_init__.py”,执行中第377行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/home/ubuntu/.virtualenvs/project/lib/python3.4/site packages/django/core/management/_init__.py”,第238行,在fetch_命令中
klass=加载命令类(应用程序名称,子命令)
文件“/home/ubuntu/.virtualenvs/project/lib/python3.4/site packages/django/core/management/_init__.py”,第42行,装入命令类
返回module.Command()
文件“/home/ubuntu/.virtualenvs/project/lib/python3.4/site packages/django/contrib/staticfiles/management/commands/collectstatic.py”,第58行,在__
self.storage.path(“”)
文件“/home/ubuntu/.virtualenvs/project/lib/python3.4/site packages/django/utils/functional.py”,第224行,在内部
self.\u设置()
文件“/home/ubuntu/.virtualenvs/project/lib/python3.4/site packages/django/contrib/staticfiles/storage.py”,第391行,在安装程序中
self.\u wrapped=get\u storage\u class(settings.STATICFILES\u storage)()
文件“/home/ubuntu/.virtualenvs/project/lib/python3.4/site packages/django/core/files/storage.py”,第303行,在get\u storage\u类中
返回导入字符串(导入路径或设置。默认文件存储)
文件“/home/ubuntu/.virtualenvs/project/lib/python3.4/site packages/django/utils/module\u load.py”,第26行,导入字符串
模块=导入模块(模块路径)
文件“/home/ubuntu/.virtualenvs/project/lib/python3.4/importlib/\uuuu init\uuuu.py”,第109行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第2254行,在_gcd_import中
文件“”,第2237行,在“查找”和“加载”中
文件“”,第2226行,在“查找”和“加载”中解锁
文件“”,第1200行,在“加载”中
文件“”,第1129行,在_exec中
exec_模块中第1471行的文件“”
文件“”,第321行,在“调用”中,删除了“帧”
文件“/home/ubuntu/.virtualenvs/project/lib/python3.4/site packages/storages/backends/s3boto.py”,第9行,在
从StringIO导入StringIO#noqa
ImportError:没有名为“StringIO”的模块
似乎lib django storages==1.1.8还不支持Python3,这就是为什么我会出现这个错误

我的问题是:我如何解决这个问题?是否有类似的库来取代django存储


我正在使用django 1.7.1和Python3。

我刚刚用这个新回购解决了我自己的问题:


此线程具有使用此新django storages的完整解决方案

您是否将boto3与此新包一起使用?