django - 导入错误 : cannot import name SortedDict - only on Python 2. 7,而不是 2.6

标签 django python-2.7 python-2.6

我正在尝试启动并运行 Django 应用程序。这些库有点过时了(目前是 Django 1.4)。

当我尝试 python 2.6 时,它或多或少可以工作,但是当我使用 python 2.7 更改为 virtualenv 时,我收到错误:

Unhandled exception in thread started by <function wrapper at 0x7f057b17c320>
Traceback (most recent call last):
File "/home/colin/software/virtualenvs/barshool/lib/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "/home/colin/software/virtualenvs/barshool/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 109, in inner_run
autoreload.raise_last_exception()
File "/home/colin/software/virtualenvs/barshool/lib/python2.7/site-packages/django/utils/autoreload.py", line 249, in raise_last_exception
six.reraise(*_exception)
File "/home/colin/software/virtualenvs/barshool/lib/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "/home/colin/software/virtualenvs/barshool/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/colin/software/virtualenvs/barshool/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/home/colin/software/virtualenvs/barshool/lib/python2.7/site-packages/django/apps/config.py", line 90, in create
module = import_module(entry)
File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/home/colin/software/virtualenvs/barshool/lib/python2.7/site-packages/transmeta/__init__.py", line 7, in <module>
from django.utils.datastructures import SortedDict
ImportError: cannot import name SortedDict

我使用相同的要求文件设置了 virtualenv。

可能导致此问题的版本之间有何差异?

最佳答案

SortedDictremoved in Django 1.9 。确保您在新虚拟环境中安装了与旧虚拟环境相同版本的 Django。

如果是您自己的代码使用 SortedDict,长期修复方法是更新代码以使用 collections.OrderedDict ,这是在 Python 2.7 中添加的。在您的例子中,导入错误似乎来自第三方应用程序,您必须更新或替换该应用程序才能使代码与 Django 1.9 兼容。

关于django - 导入错误 : cannot import name SortedDict - only on Python 2. 7,而不是 2.6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34613751/

相关文章:

python - 使用日期时间在Python中确定给定时间戳的季节

django-registration create_user() 意外关键字

django - Django 中类似 Blogger 的应用程序

python - 如何制作一个由另一个发电机组成的发电机

python - Tkinter:如何设置 ttk.Radiobutton 激活并获取它的值?

python - 无法在 Debian lenny 上安装 python 模块 "pycrypto"

django - Django 中未通过 .add() 方法添加的多对多关系条目

python - 我如何使用 sorl-thumbnail? ( Django )

python - python 2.7 中的 super

python - 如何让 pip 指向更新版本的 Python