2017-10-17 4 views
0

pip3 --versionは遅れてエラーを投げています。ピップを使って仮想環境にパッケージをインストールするのに問題があります。これは新しい問題ですが、私はそれがあまりにも多くのPythonのバージョンが私のコンピュータにインストールされていることが原因だと思う。pip3 --version ImportError

他にこのエラーが発生しましたか?私は以前に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

「module_from_spec」が3.6に存在することは確かです。あなたは実際にあなたが上のピップを呼び出す正確なバージョンを指定して、試してみることをお願いすることができます

pip3.6 install packagename 
+0

ありがとう、私は私のコンピュータに戻ってきたときに試してみるよ。私は、返されたものを見るためにpip3.6 --versionを試みたと信じていますが、エラーが再現されたかどうかを思い出すことはできません。しかし、 'cache_from_source'にも問題があります。それは 'module_from_spec'に関連するでしょうか? – Hanzy

+0

私はpip3 --versionを実行すると同じエラーが発生し、仮想環境にインストールしようとすると同様の問題が発生することを確認できます。 – Hanzy

+0

PATHで作業し、 'matplotlib-2.0.2-py3.6-nspkg.pth'ファイルを削除した後、pip3 --versionをエラーなく実行することができました。 importlib.utilには属性 'module_from_spec'がありません。 仮想環境にpip3をインストールしようとすると、前と同じエラーが表示されます。 'from importlib.util import cache_from_source ImportError:名前をインポートできません 'cache_from_source' ' – Hanzy

0

が、私はこのエラーの解決策を発見したが、現在ではまだそれが予期せず発生するため、原因を決定していません。私は自分のコンピュータに複数のpythonがインストールされていることが原因だと思う(異なるバージョン、自作、anaconda、OSX出荷バージョンなどさまざまな場所からダウンロードされたものなど)。

さまざまなインストールの理由は、Pythonの更新版をインストールするだけでなく、私がPythonで教育している間に、多くのクラスを取ったためです。

importlib.utilを調べてみると、コードに間違いはありませんでしたので、python(anonymous)のインストールを調べて、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 

しかし、importlib.utilファイルのアナコンダ版のトップがこのように見えた:

エラーを投げimportlib.utilファイルの先頭には、このように見えた

"""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を使用すると、2つのファイルに他の違いがないことが確認できました。 PIP3の機能が復元され、保存した後

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 

:私は、ファイルimportlib.util USR /ビンにファイルimportlib.utilアナコンダから次の行をコピーして貼り付け._bootstrap_externalからの輸入の違いに着目し

。私はまだ変更が元になった原因を特定していませんが、他の人に同様の問題がある場合は、上記の3番目のブロックからコードをコピーし、importlib.utilファイルの先頭に挿入することをお勧めします。