【发布时间】: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