无法从六个方面导入任何内容。这两行都会产生错误:
from six.moves.urllib.request import urlretrieve
- > Unresolved reference "urlretrieve"
from six.moves import cPickle as pickle
- > Unresolved reference "cPickle"
OSX 10.11.5。 IntelliJ 2016.1.2,PyCharm 2016.1.3,Python 2.7.11,Six 1.10.0。
我尝试修复的内容(按PyCharm shows unresolved references error for valid code和其他帖子):
_
$ sudo pip install -U six
Requirement already up-to-date: six in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/six-1.10.0-py2.7.egg
我试过的Python SDK:
Python 2.7.11 (/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7)
Python 3.5.1 (/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5)
Python 2.7.10 (/usr/local/bin/python2.7)
没有任何效果。欢迎帮助!感谢。
---------- 2016年5月23日更新------------------------------ -
从命令行运行“from six.moves ...”导入行不会产生错误。命令行调用Python 2.7.11。 PyCharm也使用Python 2.7.11,而PyCharm也显示有六个可用 - 参见第一个屏幕截图。项目中没有.pyc文件,只有main.py. 奇怪的是,main.py在PyCharm中运行时没有错误;打印“Hello”行(参见第二个屏幕截图)。 此屏幕截图显示设置中的项目解释程序: 我还是难过。
---------- 2016年5月24日更新-----------------------------
import six
在代码和python shell中都可以正常工作,执行后会有六个。文件 = /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/six-1.10.0-py2.7.egg/six.pyc
。
但是,PyCharm IDE仍显示六个导入行中的错误。
答案 0 :(得分:1)
six
仅安装在/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
,因此仅当您在PyCharm / IntelliJ中使用该解释器时才能使用
注意,如果您创建新的虚拟环境,则必须单独安装six
。
如果PyCharm / IntelliJ给你这些警告,但代码实际运行 - 那么这只是PyCharm的一个缓存问题,你可以放心地忽略它 - 很可能在下一次缓存重建时PyCharm会更新它的缓存。
答案 1 :(得分:1)
这个问题似乎由this one回答(我不知道如何将此标记重复)。
很遗憾,由于"六"的动态特性,没有简单的解决方案。模块,除非你为这个模块实现自己的python-skeleton(这不是straithforward)。
答案 2 :(得分:0)
你可以使用import six而不是six.moves import cPickle,然后使用six.moves.cPickle。
它对我有用。