Python 3.x pip3——版本

Python 3.x pip3——版本,python-3.x,pip,Python 3.x,Pip,pip3——版本最近抛出了一个错误,我在使用pip将软件包安装到虚拟环境时遇到了问题。这是一个新问题,但我认为可能是因为我的计算机上安装了太多的python版本 是否有其他人看到此错误抛出?我以前从未遇到过importlib.util抛出的错误。此外,这个错误只是最近才逐渐出现的。据我所知,我没有做任何更改importlib.util Error processing line 1 of /usr/local/Cellar/python3/3.6.2/Frameworks/Python.fram

pip3——版本最近抛出了一个错误,我在使用pip将软件包安装到虚拟环境时遇到了问题。这是一个新问题,但我认为可能是因为我的计算机上安装了太多的python版本

是否有其他人看到此错误抛出?我以前从未遇到过importlib.util抛出的错误。此外,这个错误只是最近才逐渐出现的。据我所知,我没有做任何更改importlib.util

Error processing line 1 of /usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib-2.0.2-py3.6-nspkg.pth:

  Traceback (most recent call last):
    File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 168, in addpackage
      exec(line)
    File "<string>", line 1, in <module>
  AttributeError: module 'importlib.util' has no attribute 'module_from_spec'

Remainder of file ignored
Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 11, in <module>
    load_entry_point('pip==9.0.1', 'console_scripts', 'pip3')()
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 561, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2631, in load_entry_point
    return ep.load()
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2291, in load
    return self.resolve()
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2297, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/local/lib/python3.6/site-packages/pip/__init__.py", line 26, in <module>
    from pip.utils import get_installed_distributions, get_prog
  File "/usr/local/lib/python3.6/site-packages/pip/utils/__init__.py", line 22, in <module>
    from pip.compat import console_to_str, expanduser, stdlib_pkgs
  File "/usr/local/lib/python3.6/site-packages/pip/compat/__init__.py", line 60, in <module>
    from importlib.util import cache_from_source
ImportError: cannot import name 'cache_from_source'
错误处理第1行/usr/local/ceral/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib-2.0.2-py3.6-nspkg.pth:
回溯(最近一次呼叫最后一次):
文件“/usr/local/ceral/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py”,第168行,在addpackage中
行政主任(行)
文件“”,第1行,在
AttributeError:模块“importlib.util”没有属性“module\u from\u spec”
忽略文件的其余部分
回溯(最近一次呼叫最后一次):
文件“/usr/local/bin/pip3”,第11行,在
加载入口点('pip==9.0.1','console脚本','pip3')()
文件“/usr/local/lib/python3.6/site packages/pkg_resources/__init__.py”,第561行,加载入口点
返回获取分布(dist)。加载入口点(组、名称)
文件“/usr/local/lib/python3.6/site packages/pkg_resources/__init__.py”,第2631行,在加载入口点
返回ep.load()
文件“/usr/local/lib/python3.6/site packages/pkg_resources/_init__.py”,第2291行,已加载
返回self.resolve()
文件“/usr/local/lib/python3.6/site packages/pkg_resources/__init__.py”,第2297行,在resolve中
module=\uuuu导入(self.module\u name,fromlist=[''\uuuu name\uuuuuuu'],级别=0)
文件“/usr/local/lib/python3.6/site packages/pip/_init__.py”,第26行,在
从pip.utils import get_installed_发行版,get_prog
文件“/usr/local/lib/python3.6/site packages/pip/utils/__init__.py”,第22行,在
从pip.compat导入控制台到str,expanduser,stdlib\u pkgs
文件“/usr/local/lib/python3.6/site packages/pip/compat/_init__.py”,第60行,在
从importlib.util从源导入缓存
ImportError:无法从\u源导入名称“缓存\u”

我确信3.6中存在“规范中的模块”。实际上,您可以指定调用pip的确切版本,请尝试:

pip3.6 install packagename

我已经找到了这个错误的解决方案,但目前还没有确定它意外出现的原因。我怀疑这是因为我的计算机上安装了几台python(不同的版本以及从不同的位置下载的版本,如自制、anaconda、OSX附带版本等)

请注意,不同安装的原因不仅是为了安装python的更新版本,还因为在我接受python教育的过程中,我参加了许多课程,这些课程通常为特定的安装方法提供建议

在查看importlib.util时,代码中没有明显的错误,因此我决定查看python的anaconda安装(均为python 3.6)并比较importlib.util文件

抛出错误的importlib.util文件的顶部如下所示:

"""Utility code for constructing importers, etc."""
import functools
import sys
import types
import warnings
from contextlib import contextmanager

from . import abc
from ._bootstrap import _find_spec
from ._bootstrap import _resolve_name
"""Utility code for constructing importers, etc."""
from . import abc
from ._bootstrap import module_from_spec
from ._bootstrap import _resolve_name
from ._bootstrap import spec_from_loader
from ._bootstrap import _find_spec
from ._bootstrap_external import MAGIC_NUMBER
from ._bootstrap_external import cache_from_source
from ._bootstrap_external import decode_source
from ._bootstrap_external import source_from_cache
from ._bootstrap_external import spec_from_file_location

from contextlib import contextmanager
import functools
import sys
import types
import warnings
但是,anaconda版本的importlib.util文件的顶部如下所示:

"""Utility code for constructing importers, etc."""
import functools
import sys
import types
import warnings
from contextlib import contextmanager

from . import abc
from ._bootstrap import _find_spec
from ._bootstrap import _resolve_name
"""Utility code for constructing importers, etc."""
from . import abc
from ._bootstrap import module_from_spec
from ._bootstrap import _resolve_name
from ._bootstrap import spec_from_loader
from ._bootstrap import _find_spec
from ._bootstrap_external import MAGIC_NUMBER
from ._bootstrap_external import cache_from_source
from ._bootstrap_external import decode_source
from ._bootstrap_external import source_from_cache
from ._bootstrap_external import spec_from_file_location

from contextlib import contextmanager
import functools
import sys
import types
import warnings
使用IntelliJ,我可以确认这两个文件中没有其他差异

注意到从外部导入的差异,我将以下行从anaconda importlib.util文件复制并粘贴到usr/bin importlib.util文件中:

from ._bootstrap_external import MAGIC_NUMBER
from ._bootstrap_external import cache_from_source
from ._bootstrap_external import decode_source
from ._bootstrap_external import source_from_cache
from ._bootstrap_external import spec_from_file_location
from ._bootstrap import spec_from_loader
from ._bootstrap import module_from_spec

保存后,pip3功能恢复。我还没有确定最初更改的原因,但是如果其他人有类似的问题,我建议从上面的第三个块复制代码,并将其插入到importlib.util文件的顶部。

谢谢,我会在回到计算机后尝试。我相信我试过pip3.6版本,只是为了看看返回了什么,但记不起是否再现了错误。虽然“cache\u from\u source”看起来也有问题。这是否与“规范中的模块”有关?我可以确认,当我运行pip3--version时,我会遇到相同的错误,当我尝试安装到虚拟环境时,我会遇到类似的问题。在使用路径并删除文件“matplotlib-2.0.2-py3.6-nspkg.pth”后,我能够运行pip3--version而没有错误。我不再从规范中获取importlib.util没有属性“module”。但是,当我尝试将pip3安装到虚拟环境时,我在底部遇到与以前相同的错误:
来自importlib.util import cache\u from\u source ImportError:无法从\u source'导入名称“cache\u”