Pip: ImportError:名前 'sysconfig'をインポートできません(Ubuntu 16.04)

作成日 2018年05月03日  ·  16コメント  ·  ソース: pypa/pip

  • ピップバージョン:
  • Pythonバージョン:3.6.5
  • オペレーティングシステム:Ubuntu 16.04.4 LTS

説明:

#5356と同様の問題ですが、Ubuntuのバージョンが異なります。 #5356で提案された解決策は、このバージョンのUbuntuの問題を解決しません

クリーンバージョンのUbuntuにjonathonfリポジトリからPython3.6をインストールした後、 Pipをインストールしようとしたときに次のエラーが見つかりました

デフォルトで提供されているPythonバージョン(3.5.2)でPipをインストールしようとしても、問題は発生しないことに注意してください。

私が実行したもの:

python3.6 get-pip.py

エラーメッセージ:

Traceback (most recent call last):
  File "get-pip.py", line 20649, in <module>
    main()
  File "get-pip.py", line 197, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip._internal
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/__init__.py", line 42, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/cmdoptions.py", line 16, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/index.py", line 25, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/download.py", line 35, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/locations.py", line 10, in <module>
ImportError: cannot import name 'sysconfig'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "get-pip.py", line 20649, in <module>
    main()
  File "get-pip.py", line 197, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip._internal
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/__init__.py", line 42, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/cmdoptions.py", line 16, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/index.py", line 25, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/download.py", line 35, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/locations.py", line 10, in <module>
ImportError: cannot import name 'sysconfig'

私が見つけた回避策

  • https://www.python.org/からPythonソースをダウンロードします
  • ソースコードを解凍します
  • 次の依存関係をインストールします。
    sudo apt-get install zlib1g-dev (Pythonをコンパイルするために必要)
    sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev (SSLリクエストを行うためにPipが必要)
  • Pythonをコンパイルしてインストールします。
./configure
make
make install
  • Python 3.6 withPipをインストールする必要があります。
downstream auto-locked support

最も参考になるコメント

同様のエラーも見られました。

$ sudo python3.6 get-pip.py
Traceback (most recent call last):
  File "get-pip.py", line 20061, in <module>
    main()
  File "get-pip.py", line 194, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/__init__.py", line 26, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/utils/__init__.py", line 23, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/locations.py", line 9, in <module>
ImportError: cannot import name 'sysconfig'

ただし、 python3-distutilsをインストールすることで、このエラーを回避することができました。
sudo apt-get install python3-distutils

全てのコメント16件

私の問題の説明を読みたいと思うなら、私がすでにその問題を見たことがわかるでしょう。 そこで提案された解決策は、このバージョンのUbuntuには適用できません。

失礼である必要はありません。 しかし、私にとっては、Pythonをコンパイルすることは解決策ではありません。

そのインポートエラーが原因です。 後で再現してみます。

@jonbesga回避策をありがとう、Python3.6とubuntuのまったく同じバージョンでもこの問題が発生しています...

@Tarliton私はそれが解決策ではないことに同意します。 回避策として名前を変更します。

失礼については申し訳ありませんが、私の号ですでに言及している問題を見るように言ったのは、そもそも私の問題を読まずにコメントを投稿したことを意味します。

@jonbesga私の悪いですが、他の問題で言及されているコマンドを実行しようと言うべきでした。
お気に入り:

python -c "from distutils import sysconfig"

Ubuntu 16.04.2を使用するVMでこれを実行したところ、問題はありませんでした。 そして、インストールされたピップ。
後で16.04.4で試してみます。

16.04.4で確認できます。

python3.6 -c "from distutils import sysconfig"

次のエラーが発生します。

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: cannot import name 'sysconfig'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: cannot import name 'sysconfig'

ppa:jonathonf/python-3.6からではなくppa:deadsnakes/ppaからPython 3.6をインストールしようとしましたが、Pipが正しくインストールされています。 なんらかの形で壊れているjonathonfのバージョンのようです。

編集:スタックオーバーフローの回答のいくつかのコメントがjonathonfリポジトリでこの問題に対処していることに気づきました

ppa:jonathonf/python-3.6を削除してから$# ppa:deadsnakes/ppaを追加し、$ python3.6 $を再インストールすると、Linux Mint18.3でこの問題が修正されることを確認できます。

現在のPPAの削除に関する情報: https ://askubuntu.com/a/173209/823909
新しいPython3.6PPAの追加: https ://askubuntu.com/questions/865554/how-do-i-install-python-3-6-using-apt-get

@tomrunia現在のリンクがベストアンサーを指していないため、リンクをhttps://askubuntu.com/a/310に変更することをお勧めします。

同様のエラーも見られました。

$ sudo python3.6 get-pip.py
Traceback (most recent call last):
  File "get-pip.py", line 20061, in <module>
    main()
  File "get-pip.py", line 194, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/__init__.py", line 26, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/utils/__init__.py", line 23, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/locations.py", line 9, in <module>
ImportError: cannot import name 'sysconfig'

ただし、 python3-distutilsをインストールすることで、このエラーを回避することができました。
sudo apt-get install python3-distutils

@wakiyamapこれは、Ubuntu 18.04 LTSで#5356で機能するソリューションのようです。 ただし、Ubuntu 16.04.4 LTSでは、そのパッケージの名前が変更されており、問題は解決していません。

@jonbesgaこのバージョンを使用しました。
Ubuntu Xenial(16.04 LTS)(GNU / Linux 4.4.94-mainline-rev1 aarch64)
ppa:jonathonf / python-3.6

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"

CPUが違うので、この場合とは関係ないかもしれません。
ごめん。

Ubuntu 16.04でも同様の問題が発生しました(具体的には「distutils import dist、sysconfigから」
ImportError:名前 'dist' ")をインポートできません)および" sudo apt-get installpython3-distutils "で解決しました。ありがとうございます。

@RandyRomero @wakiyamapありがとう、 apt install python3-distutilsは私にも役立ちます。

@jonbesga私は16.04.4LTSを使用していて、機能しました。 編集-私はvagrantを使用しています、少し前に「vagrant box update」を実行しました、私は20180504にいます)

一般的に、私に言わせれば、pip関連の問題ではなく、Ubuntuのパッケージングと関係があります

@wakiyamapありがとう、あなたのソリューションapt install python3-distutilsも私のために働いた。
Ubuntu16.04.4でPython3.6.5にアップグレードしたところ、matplotlibのインポートとpipの呼び出しがすべて同じエラーで失敗しました。

この修正は広く普及する必要があります。

このスレッドは、閉じられた後、最近のアクティビティがないため、自動的にロックされています。 関連するバグについては、新しい問題を開いてください。

このページは役に立ちましたか?
0 / 5 - 0 評価