2016-09-23 20 views
6

Importuję moduł, który importuje dane six, ale otrzymuję ten dziwny błąd.Python - nie można zaimportować widoków nazw

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 

ja bym spojrzeć na six.py, ma viewkeys w nim.

Najnowsza instalacja six==1.10.0 została zainstalowana.

+0

Czy jesteś pewien, że nie nazwałeś pliku w katalogu roboczym 'six.py' lub somesuch? Możesz spróbować, w swoim module, zrobić zwykły 'import six', następnie' print (six) 'i sprawdzić, czy to ten, którego oczekujesz. – ShadowRanger

+0

Nie. Wcale nie. – PythonEnthusiast

+0

Próbowałem również w powłoce Pythona. Próbowałem importować tylko "z sześciu widoków importu", zwraca błąd. – PythonEnthusiast

Odpowiedz

13

miałem ten sam problem:

> 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() 

wpadłem następujące kroki:

  • sudo -H pip uninstall six
  • sudo -H pip install six==1.9.0
  • Test: błąd nie ustępuje
  • sudo -H pip uninstall six==1.9.0
  • sudo -H pip install six==1.10.0

Test:

> 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() 

Więc viewkeys błędów nie wróci.

Problem importowanie InputStream wydaje się być błąd w xhtml2pdf:
https://github.com/xhtml2pdf/xhtml2pdf/issues/318

Dla mnie ten problem został rozwiązany:
sudo -H pip install html5lib==1.0b8

Tak przecież, tak naprawdę nie wiem, czy ostatnie polecenie naprawiłbym problem ogólnie, ale teraz działa to dla mnie teraz:

> 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 
>>> 
+0

Mam ten sam problem i instaluję html5lib == 1.0b8 daje mi ten sam błąd importu: / – Matt

0

Dla mnie PIP w jako nie działa, więc nie mogę zainstalować sześciu.

Co robiłem jest:

Pobierz najnowszy pakiet „sześć” stąd: 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 

Teraz PIP działa w Pythonie 3, jeśli jest to potrzebne dla Pythona 2 wystarczy zmienić "python3" dla "python2" w ostatnim poleceniu.

1

Właśnie to pomogło mi w moim MacBooku Pro, OS X Yosemite, 10.10.5

1) Sprawdź, który sześć wersji Pythona używa

import six 
print six.__version__ 

1.4.0 

2) Znajdź wszystkie sześć pakietów Pythona w systemie

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) Sprawdź sześć wersji pojedynczo

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

4) Gdy plik otworzy się, przewiń w dół, aby zidentyfikować szóstą wersję

5) ręcznie usunąć wszystkie pakiety starsze niż 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) Instalacja ostatnią sześć pakietu (np 1.11.0):

sudo pip install --ignore-installed six 
Powiązane problemy