Python – не может импортировать названия

Я импортирую модуль, который импортирует six экземпляров, но я получаю эту странную ошибку.

 Traceback (most recent call last): File "/Users/praful/Desktop/got/modules/categories/tests.py", line 13, in <module> import microdata File "build/bdist.macosx-10.10-intel/egg/microdata.py", line 4, in <module> File "/Library/Python/2.7/site-packages/html5lib/__init__.py", line 16, in <module> from .html5parser import HTMLParser, parse, parseFragment File "/Library/Python/2.7/site-packages/html5lib/html5parser.py", line 2, in <module> from six import with_metaclass, viewkeys, PY3 ImportError: cannot import name viewkeys 

Я бы посмотрел на six.py , у него есть viewkeys .

Установлены последние six==1.10.0 .

У меня такая же проблема:

 > python Python 2.7.10 (default, Oct 23 2015, 19:19:21) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import six >>> import xhtml2pdf.pisa Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Python/2.7/site-packages/xhtml2pdf/pisa.py", line 3, in <module> from xhtml2pdf.document import pisaDocument File "/Library/Python/2.7/site-packages/xhtml2pdf/document.py", line 2, in <module> from xhtml2pdf.context import pisaContext File "/Library/Python/2.7/site-packages/xhtml2pdf/context.py", line 23, in <module> import xhtml2pdf.parser File "/Library/Python/2.7/site-packages/xhtml2pdf/parser.py", line 17, in <module> from html5lib import treebuilders, inputstream File "/Library/Python/2.7/site-packages/html5lib/__init__.py", line 16, in <module> from .html5parser import HTMLParser, parse, parseFragment File "/Library/Python/2.7/site-packages/html5lib/html5parser.py", line 2, in <module> from six import with_metaclass, viewkeys, PY3 ImportError: cannot import name viewkeys >>> exit() 

Я выполнил следующие шаги:

  • sudo -H pip uninstall six
  • sudo -H pip install six==1.9.0
  • Тест: ошибка сохраняется
  • sudo -H pip uninstall six==1.9.0
  • sudo -H pip install six==1.10.0

Контрольная работа:

 > python Python 2.7.10 (default, Oct 23 2015, 19:19:21) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from six import viewkeys >>> import xhtml.pisa Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named xhtml.pisa >>> import xhtml2pdf.pisa Traceback (most recent call last): File "<stdin>", line 1, in <module> File "xhtml2pdf/pisa.py", line 3, in <module> from xhtml2pdf.document import pisaDocument File "xhtml2pdf/document.py", line 2, in <module> from xhtml2pdf.context import pisaContext File "xhtml2pdf/context.py", line 23, in <module> import xhtml2pdf.parser File "xhtml2pdf/parser.py", line 17, in <module> from html5lib import treebuilders, inputstream ImportError: cannot import name inputstream >>> exit() 

Таким образом, ошибка viewkeys не вернулась.

Проблема импорта входного потока кажется ошибкой в ​​xhtml2pdf:
https://github.com/xhtml2pdf/xhtml2pdf/issues/318

Для меня это поставило проблему:
sudo -H pip install html5lib==1.0b8

Итак, после этого я не знаю, могла ли последняя команда устранить проблему в целом, но таким образом она работает для меня сейчас:

 > python Python 2.7.10 (default, Oct 23 2015, 19:19:21) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import xhtml2pdf.pisa >>> 

Для меня PIP не работал, поэтому я не могу переустановить шесть.

Я сделал это:

Загрузите последний пакет «шесть» отсюда: https://pypi.python.org/pypi/six

 cd /tmp wget [GET LATEST SIX URL] tar xf six-1.10.0.tar.gz cd six-1.10.0 python3 setup.py install 

Теперь PIP работает в Python 3, если вам это нужно для Python 2, просто измените «python3» на «python2» в последней команде.

Это то, что помогло мне на MacBook Pro, OS X Yosemite, 10.10.5

1) Проверьте, какая из шести версий использует ваш Python

 import six print six.__version__ 1.4.0 

2) Найдите все шесть пакетов Python в вашей системе

 sudo find / -name 'six*' /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/scipy/lib/six.py /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/scipy/lib/six.pyc /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six.py /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six.pyc 

3) Проверяйте шесть версий один за другим

 vi /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six.py 

4) Когда файл открывается, прокрутите вниз, чтобы определить шесть версий

5) Вручную удалите все пакеты старше, чем 1.10.0.

 sudo rm /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six.py sudo rm /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six.pyc 

6) Установите последние шесть пакетов (например, 1.11.0):

 sudo pip install --ignore-installed six