Getting ImportError: cannot import name OrderedDict
Getting ImportError: cannot import name OrderedDict
我遇到错误
ImportError: cannot import name OrderedDict
在我的 ubuntu 14.04 机器上本地安装服务器时。
我尝试手动安装 ordereddict 并尝试升级 kombu 但它仍然提供 error.The 完整的回溯是下面添加-
rishav@Swastik:~/open-event-orga-server$ sudo python create_db.py
Traceback (most recent call last):
File "create_db.py", line 5, in
from app import current_app
File "/home/rishav/open-event-orga-server/app/init.py", line 23, in
from celery import Celery
File "/usr/local/lib/python2.7/dist-packages/celery/init.py", line 133, in
from celery import five # noqa
File "/usr/local/lib/python2.7/dist-packages/celery/five.py", line 153, in
from kombu.utils.compat import OrderedDict # noqa
ImportError: cannot import name OrderedDict
我在 python 2.7.8 和 kombu 4.0.x 上遇到了同样的问题,我通过将 kombu 降级到 3.0.x 解决了这个问题(这是我需要的版本).
没有时间调查问题的原因,但 this 可能与...
这解决了我的问题:
将 kombu 降级到 2.5.16。
已重新安装django-celery
这是日志:
(virtualEnv) D:\Project\staging\modone\settings>pip install django-celery
Collecting django-celery
Downloading django_celery-3.2.1-py2-none-any.whl (63kB)
100% |################################| 71kB 83kB/s
Collecting django>=1.8 (from django-celery)
Using cached Django-1.10.5-py2.py3-none-any.whl
Collecting celery<4.0,>=3.1.15 (from django-celery)
Downloading celery-3.1.25-py2.py3-none-any.whl (526kB)
100% |################################| 532kB 122kB/s
Requirement already satisfied: pytz>dev in d:\project\installations\virtualenv\lib\site-packages (from celery<4.0,>=3.1.15->django-celery)
Collecting kombu<3.1,>=3.0.37 (from celery<4.0,>=3.1.15->django-celery)
Using cached kombu-3.0.37-py2.py3-none-any.whl
Collecting billiard<3.4,>=3.3.0.23 (from celery<4.0,>=3.1.15->django-celery)
Downloading billiard-3.3.0.23-cp27-none-win32.whl (102kB)
100% |################################| 102kB 114kB/s
Requirement already satisfied: anyjson>=0.3.3 in d:\project\installations\virtualenv\lib\site-packages (from kombu<3.1,>=3.0.37->celery<4.0,>=3.1.15->
django-celery)
Collecting amqp<2.0,>=1.4.9 (from kombu<3.1,>=3.0.37->celery<4.0,>=3.1.15->django-celery)
Using cached amqp-1.4.9-py2.py3-none-any.whl
Installing collected packages: django, amqp, kombu, billiard, celery, django-celery
Found existing installation: Django 1.4.5
Uninstalling Django-1.4.5:
Successfully uninstalled Django-1.4.5
Found existing installation: amqp 1.0.13
Uninstalling amqp-1.0.13:
Successfully uninstalled amqp-1.0.13
Found existing installation: kombu 2.5.16
Uninstalling kombu-2.5.16:
Successfully uninstalled kombu-2.5.16
Found existing installation: billiard 2.7.3.28
Uninstalling billiard-2.7.3.28:
Successfully uninstalled billiard-2.7.3.28
Found existing installation: celery 3.0.18
Uninstalling celery-3.0.18:
Successfully uninstalled celery-3.0.18
Successfully installed amqp-1.4.9 billiard-3.3.0.23 celery-3.1.25 django-1.10.5 django-celery-3.2.1 kombu-3.0.37
如果导入不正确(例如 orderedDict
、Ordereddict
或 ordereddict
),也会出现 ImportError
:
方法一
from collections import OrderedDict
d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}
# dictionary sorted by key
print(OrderedDict(sorted(d.items(), key=lambda t: t[0])))
print(OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)]))
方法二
import collections
d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}
# dictionary sorted by key
print(collections.OrderedDict(sorted(d.items(), key=lambda t: t[0])))
print(collections.OrderedDict(
[('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)]))
输出
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
来源
我遇到错误
ImportError: cannot import name OrderedDict
在我的 ubuntu 14.04 机器上本地安装服务器时。
我尝试手动安装 ordereddict 并尝试升级 kombu 但它仍然提供 error.The 完整的回溯是下面添加-
rishav@Swastik:~/open-event-orga-server$ sudo python create_db.py
Traceback (most recent call last): File "create_db.py", line 5, in
from app import current_app
File "/home/rishav/open-event-orga-server/app/init.py", line 23, in
from celery import Celery
File "/usr/local/lib/python2.7/dist-packages/celery/init.py", line 133, in
from celery import five # noqa File "/usr/local/lib/python2.7/dist-packages/celery/five.py", line 153, in
from kombu.utils.compat import OrderedDict # noqa
ImportError: cannot import name OrderedDict
我在 python 2.7.8 和 kombu 4.0.x 上遇到了同样的问题,我通过将 kombu 降级到 3.0.x 解决了这个问题(这是我需要的版本).
没有时间调查问题的原因,但 this 可能与...
这解决了我的问题:
将 kombu 降级到 2.5.16。
已重新安装django-celery
这是日志:
(virtualEnv) D:\Project\staging\modone\settings>pip install django-celery
Collecting django-celery
Downloading django_celery-3.2.1-py2-none-any.whl (63kB)
100% |################################| 71kB 83kB/s
Collecting django>=1.8 (from django-celery)
Using cached Django-1.10.5-py2.py3-none-any.whl
Collecting celery<4.0,>=3.1.15 (from django-celery)
Downloading celery-3.1.25-py2.py3-none-any.whl (526kB)
100% |################################| 532kB 122kB/s
Requirement already satisfied: pytz>dev in d:\project\installations\virtualenv\lib\site-packages (from celery<4.0,>=3.1.15->django-celery)
Collecting kombu<3.1,>=3.0.37 (from celery<4.0,>=3.1.15->django-celery)
Using cached kombu-3.0.37-py2.py3-none-any.whl
Collecting billiard<3.4,>=3.3.0.23 (from celery<4.0,>=3.1.15->django-celery)
Downloading billiard-3.3.0.23-cp27-none-win32.whl (102kB)
100% |################################| 102kB 114kB/s
Requirement already satisfied: anyjson>=0.3.3 in d:\project\installations\virtualenv\lib\site-packages (from kombu<3.1,>=3.0.37->celery<4.0,>=3.1.15->
django-celery)
Collecting amqp<2.0,>=1.4.9 (from kombu<3.1,>=3.0.37->celery<4.0,>=3.1.15->django-celery)
Using cached amqp-1.4.9-py2.py3-none-any.whl
Installing collected packages: django, amqp, kombu, billiard, celery, django-celery
Found existing installation: Django 1.4.5
Uninstalling Django-1.4.5:
Successfully uninstalled Django-1.4.5
Found existing installation: amqp 1.0.13
Uninstalling amqp-1.0.13:
Successfully uninstalled amqp-1.0.13
Found existing installation: kombu 2.5.16
Uninstalling kombu-2.5.16:
Successfully uninstalled kombu-2.5.16
Found existing installation: billiard 2.7.3.28
Uninstalling billiard-2.7.3.28:
Successfully uninstalled billiard-2.7.3.28
Found existing installation: celery 3.0.18
Uninstalling celery-3.0.18:
Successfully uninstalled celery-3.0.18
Successfully installed amqp-1.4.9 billiard-3.3.0.23 celery-3.1.25 django-1.10.5 django-celery-3.2.1 kombu-3.0.37
如果导入不正确(例如 orderedDict
、Ordereddict
或 ordereddict
),也会出现 ImportError
:
方法一
from collections import OrderedDict
d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}
# dictionary sorted by key
print(OrderedDict(sorted(d.items(), key=lambda t: t[0])))
print(OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)]))
方法二
import collections
d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}
# dictionary sorted by key
print(collections.OrderedDict(sorted(d.items(), key=lambda t: t[0])))
print(collections.OrderedDict(
[('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)]))
输出
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])