【问题标题】:How to fix the error that occurs when upgrading django 1.10 to 1.11?如何修复将 django 1.10 升级到 1.11 时出现的错误?
【发布时间】:2020-01-13 15:38:19
【问题描述】:

django 从 1.10 升级到 1.11 后,我无法使用manage.py 命令。错误太多,我什至不知道从哪里开始,从哪里寻找错误的原因。如有任何帮助,我将不胜感激。

我在下面粘贴所有错误。

  File "SAGI-B/manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute
    django.setup()
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models()
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/filer/models/__init__.py", line 3, in <module>
    from .clipboardmodels import *  # flake8: noqa
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/filer/models/clipboardmodels.py", line 9, in <module>
    from . import filemodels
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/filer/models/filemodels.py", line 18, in <module>
    from ..fields.multistorage_file import MultiStorageFileField
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/filer/fields/multistorage_file.py", line 12, in <module>
    from easy_thumbnails import fields as easy_thumbnails_fields
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/easy_thumbnails/fields.py", line 2, in <module>
    from easy_thumbnails import files
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/easy_thumbnails/files.py", line 14, in <module>
    from easy_thumbnails import engine, exceptions, models, utils, signals, storage
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/easy_thumbnails/engine.py", line 12, in <module>
    from easy_thumbnails import utils
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/easy_thumbnails/utils.py", line 15, in <module>
    from easy_thumbnails.conf import settings
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/easy_thumbnails/conf.py", line 334, in <module>
    settings = Settings()
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/easy_thumbnails/conf.py", line 21, in __init__
    super(AppSettings, self).__init__(*args, **kwargs)
TypeError: __init__() takes exactly 2 arguments (1 given)

我已经使用命令pip list --outdated --format = freeze | grep -v '^ \ - e' | cut -d = -f 1 | xargs -n1 pip install -U 升级了所有依赖项,我在这里找到了:enter link description here

现在错误数量已减少到几个。我把它们贴在下面。

Traceback (most recent call last):
  File "SAGI-B/manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute
    django.setup()
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models()
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home/marcin/.vens/sagi/local/lib/python2.7/site-packages/cmsplugin_filer_file/models.py", line 10, in <module>
    from filer.utils.compatibility import python_2_unicode_compatible
ImportError: cannot import name python_2_unicode_compatible

【问题讨论】:

  • 它看起来像是在第三方包中,你应该看看升级它
  • 您需要根据 CHANGES 文件将 'easy-thumbnails' 包升级到 2.5.0 或更高版本。 github.com/SmileyChris/easy-thumbnails/blob/master/CHANGES.rst
  • 始终从下到上查看错误跟踪。这个特定的消息告诉你 Settings() 不能像那样初始化,因为超类在它的初始化器中需要一个额外的参数。因此,您拥有的“easy-thumbnails”版本可能与 django 1.11 不兼容。我建议您跳过 Django 1.11 并直接转到 2.2(这是当前的 LTS 版本)。您将遇到从 1.11 到 2.2 的新问题(您需要在 4 月之前完成)。
  • @dirkgroten 我自己对 django 升级的经验是,通过所有“中间”版本通常更容易——这肯定很无聊,但至少你一次没有太多的变化,您可以按照每个版本的更改列表进行操作。 IIRC 这也是官方的 Django 推荐(但不要让我找到对这个 的引用)
  • @dirkgroten 很好,但我发现它:“如果您要升级多个功能版本(例如 A.B 到 A.B+2),通常更容易通过每个功能版本逐步升级( A.B 到 A.B+1 到 A.B+2),而不是一次对每个功能版本进行所有更改。对于每个功能版本,请使用最新的补丁版本 (A.B.C)。 (docs.djangoproject.com/en/3.0/howto/upgrade-version)

标签: python django python-2.7


【解决方案1】:

您的pip install -U 命令已将简单缩略图升级到2.7.0,但该版本dropped support 用于Django 1.11.X

在 2.5.0 中添加了对 Django 1.11 的支持,因此 2.5.0 或 2.6.0 应该可以工作(取决于其他要求)。您可以使用以下方式安装 2.6:

pip install --upgrade "easy-thumbnails<2.7.0"

【讨论】:

    猜你喜欢
    • 2019-03-05
    • 1970-01-01
    • 2017-10-18
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 2020-08-25
    • 2018-11-03
    相关资源
    最近更新 更多