【问题标题】:Django 1.10: django-storages on S3 error: Not naive datetime (tzinfo is already set)Django 1.10: django-storages on S3 错误: Not naive datetime (tzinfo is already set)
【发布时间】:2016-08-30 17:40:44
【问题描述】:

自从升级到 Django 1.10 后,我开始遇到错误。我正在使用django-storages==1.5.0boto3==1.4.0 在Python 3.5 上运行Django 1.10。

You have requested to collect static files at the destination
location as specified in your settings.

This will overwrite existing files!
Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: yes
Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/vagrant/.virtualenvs/wrds-classroom/lib/python3.5/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
    utility.execute()
  File "/home/vagrant/.virtualenvs/wrds-classroom/lib/python3.5/site-packages/django/core/management/__init__.py", line 359, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/vagrant/.virtualenvs/wrds-classroom/lib/python3.5/site-packages/django/core/management/base.py", line 305, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/vagrant/.virtualenvs/wrds-classroom/lib/python3.5/site-packages/django/core/management/base.py", line 356, in execute
    output = self.handle(*args, **options)
  File "/home/vagrant/.virtualenvs/wrds-classroom/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 193, in handle
    collected = self.collect()
  File "/home/vagrant/.virtualenvs/wrds-classroom/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 124, in collect
    handler(path, prefixed_path, storage)
  File "/home/vagrant/.virtualenvs/wrds-classroom/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 337, in copy_file
    if not self.delete_file(path, prefixed_path, source_storage):
  File "/home/vagrant/.virtualenvs/wrds-classroom/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 258, in delete_file
    target_last_modified = self.storage.get_modified_time(prefixed_path)
  File "/home/vagrant/.virtualenvs/wrds-classroom/lib/python3.5/site-packages/django/core/files/storage.py", line 231, in get_modified_time
    return _possibly_make_aware(dt)
  File "/home/vagrant/.virtualenvs/wrds-classroom/lib/python3.5/site-packages/django/core/files/storage.py", line 243, in _possibly_make_aware
    return timezone.make_aware(dt, tz).astimezone(timezone.utc)
  File "/home/vagrant/.virtualenvs/wrds-classroom/lib/python3.5/site-packages/django/utils/timezone.py", line 368, in make_aware
    return timezone.localize(value, is_dst=is_dst)
  File "/home/vagrant/.virtualenvs/wrds-classroom/lib/python3.5/site-packages/pytz/tzinfo.py", line 304, in localize
    raise ValueError('Not naive datetime (tzinfo is already set)')
ValueError: Not naive datetime (tzinfo is already set)

USE_TZ 更改为 False 会更改错误,但我仍然不确定为什么会出现这种情况(这对我来说是 Django 代码库中的新领域):

TypeError: can't compare offset-naive and offset-aware datetimes

知道这是什么原因吗?

【问题讨论】:

    标签: python django boto3 django-storage


    【解决方案1】:

    更新:

    我正在更新自己的答案,因为此拉取请求现已合并。要修复,只需在您的requirements.txtpip install 命令中使用版本1.5.1

    django-storages==1.5.1
    

    上下文的答案过时:

    我想出了一个临时修复,应该会导致永久修复。

    经过一番调查,一位朋友发现了这个他们认为可能相关的 PR:https://github.com/jschneier/django-storages/pull/181

    我注意到拉取请求的日期是在我运行的最新 django-storages 版本 (1.5.0) 之后两天。在我的requirements.txt 中,我只是这样做了,指向提交的哈希:

    #django-storages==1.5.0
    git+https://github.com/jschneier/django-storages.git#5f280571ee1ae93ee66ed805b53b08bfe5ab9f0c
    boto3==1.4.0
    

    然后,pip install --upgrade -r requirements.txt 并再次运行collectstatic,不再出现错误!我猜这个修复将包含在 1.5.1 版本中,此时我将再次更改我的 requirements.txt

    【讨论】:

      猜你喜欢
      • 2020-11-09
      • 2013-06-27
      • 1970-01-01
      • 2015-07-07
      • 2017-07-30
      • 1970-01-01
      • 2017-08-23
      • 1970-01-01
      • 2019-12-28
      相关资源
      最近更新 更多