Python - 无法导入名称viewkeys

时间:2016-09-23 10:22:12

标签: python

我正在导入一个导入导入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 的模块,但我收到了这个奇怪的错误。

viewkeys

我看一下six.py,其中有six==1.10.0

已安装最新的{{1}}。

4 个答案:

答案 0 :(得分:15)

我遇到了同样的问题:

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

测试:

sudo -H pip install html5lib==1.0b8

所以viewkeys-error没有回来。

导入inputstream的问题似乎是xhtml2pdf中的一个错误:
https://github.com/xhtml2pdf/xhtml2pdf/issues/318

对我来说,这解决了问题:
> 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 >>>

所以,我真的不知道最后一个命令是否能解决整个问题,但这种方式现在适用于我:

{{1}}

答案 1 :(得分:2)

这对我的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

答案 2 :(得分:0)

对我来说,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,只需在最后一个命令中为“python2”更改“python3”。

答案 3 :(得分:0)

我在生产服务器中遇到了同样的问题,并将其修复。运行以下命令 sudo pip install --ignore-installed six