无法从 Python 六个库导入
Cannot import from Python six library
无法从六个导入任何内容。这两行都会产生错误:
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,六 1.10.0.
我尝试修复的内容(根据 PyCharm shows unresolved references error for valid code 和其他帖子):
- 转换 Python 口译员
- IntelliJ: 删除了idea文件
- IDE -> 使缓存无效/重新启动
- 使用相同的源创建了一个全新的项目
- 切换 IDE 秒(IntelliJ -> PyCharm)
- 已验证六个是最新的:
_
$ 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 中都没有错误,执行后,六个。file = /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/six-1.10.0-py2.7.egg/six.pyc
.
但是,PyCharm IDE 仍然显示 six.moves 导入行中的错误。
six
仅安装在 /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
,因此只有在 PyCharm/IntelliJ
中使用该解释器时它才会起作用
请注意,如果您创建一个新的虚拟环境,则必须在其中单独安装 six
。
如果 PyCharm/IntelliJ 给你这些警告,但代码实际运行 - 那么这只是 PyCharm 的缓存问题,你可以安全地忽略它 - 可能在下一次缓存重建时PyCharm 将更新其缓存。
this one似乎回答了这个问题(我不知道如何将这个标记为重复)。
很遗憾,由于 "six" 模块的动态特性,没有 easy 解决方案,除非您为此模块实现自己的 python-skeleton (这不是直截了当的)。
您可以使用 import six 而不是 from six.moves import cPickle,然后使用 six.moves.cPickle.
对我有用。
无法从六个导入任何内容。这两行都会产生错误:
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,六 1.10.0.
我尝试修复的内容(根据 PyCharm shows unresolved references error for valid code 和其他帖子):
- 转换 Python 口译员
- IntelliJ: 删除了idea文件
- IDE -> 使缓存无效/重新启动
- 使用相同的源创建了一个全新的项目
- 切换 IDE 秒(IntelliJ -> PyCharm)
- 已验证六个是最新的:
_
$ 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。
------------ 2016 年 5 月 24 日更新----------------------------
import six
在代码和 python shell 中都没有错误,执行后,六个。file = /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/six-1.10.0-py2.7.egg/six.pyc
.
但是,PyCharm IDE 仍然显示 six.moves 导入行中的错误。
six
仅安装在 /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
,因此只有在 PyCharm/IntelliJ
请注意,如果您创建一个新的虚拟环境,则必须在其中单独安装 six
。
如果 PyCharm/IntelliJ 给你这些警告,但代码实际运行 - 那么这只是 PyCharm 的缓存问题,你可以安全地忽略它 - 可能在下一次缓存重建时PyCharm 将更新其缓存。
this one似乎回答了这个问题(我不知道如何将这个标记为重复)。
很遗憾,由于 "six" 模块的动态特性,没有 easy 解决方案,除非您为此模块实现自己的 python-skeleton (这不是直截了当的)。
您可以使用 import six 而不是 from six.moves import cPickle,然后使用 six.moves.cPickle.
对我有用。