2017-06-04 87 views
0

我是Heroku的新手,我被要求去看看那里的某个项目(他们以前的供应商不可用)。Heroku Django Collectstatic导致错误

这是一个Django 1.4项目。

为了解我是否已经下载了该项目并将其加载到新的Heroku应用程序中。工作正常,但由于错误,我必须设置disable_collectstatic = 1。原始应用程序使用亚马逊s3存储桶来存储静态文件,这样我就可以使用这些存储并且一切正常。

我现在正在尝试设置我自己的s3存储桶并让它在那里创建静态文件。我得到以下回溯

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 261, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 70, in load_command_class 
    return module.Command() 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 57, in __init__ 
    self.storage.path('') 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/utils/functional.py", line 184, in inner 
    self._setup() 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/storage.py", line 279, in _setup 
    self._wrapped = get_storage_class(settings.STATICFILES_STORAGE)() 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/files/storage.py", line 277, in get_storage_class 
    raise ImproperlyConfigured('Error importing storage module %s: "%s"' % (module, e)) 
django.core.exceptions.ImproperlyConfigured: Error importing storage module storages.backends.s3boto: "cannot import name force_bytes" 

有趣的是我得到同样的错误ImproperlyConfigured如果我试图从我的“新”项目准入管理。

这是什么原因导致我错过了什么?

+1

Django 1.4很旧。自django在1.4之后Boto已经走过了很长的路。虽然它的更新版本与django的较新版本兼容,但它可能不是这种旧版本的情况。看看你能否找到最初使用的版本并安装它。 – e4c5

+0

我在'requirements.txt'中有'boto == 2.6.0',它是2012年的版本 – HenryM

回答

0

所以这里@ e4c5指出的问题是软件包不同步。问题不是博托,而是django-storagesrequirements.txt文件有django-storages==1.2a,但没有找到,所以我去了v1.4。当我通过代码工作时,我意识到我需要回退到1.1.8以获得兼容性。现在排序。