python2.7 rusak oleh lemahnya impor kesalahan, tolong bantu!


27

Saya baru saja memperbarui dari 16.04 ke 17.10, dan setiap kali saya mencoba menjalankan perintah python2.7, saya mendapatkan kesalahan ini:

pip install --upgrade pip
Traceback (most recent call last):
File "/home/XXXX/bin/pip", line 7, in <module>
    from pip import main
  File "/home/XXXX/local/lib/python2.7/site-packages/pip/__init__.py", 
line 5, in <module>
    import logging
  File "/usr/lib/python2.7/logging/__init__.py", line 26, in <module>
    import sys, os, time, cStringIO, traceback, warnings, weakref, 
collections
  File "/home/XXXX/lib/python2.7/weakref.py", line 14, in <module>
    from _weakref import (
ImportError: cannot import name _remove_dead_weakref

Pengguna lain memiliki masalah yang sama, tetapi ini mempengaruhi program python yang saya coba jalankan. Saya tidak dapat menginstal apa pun melalui pip, atau menggunakan skrip python. Saya benar-benar tidak tahu harus berbuat apa, bantuan akan sangat dihargai.

Output dari "python --version" adalah

Python 2.7.12

namun "perbarui python" menghasilkan:

python is already the newest version (2.7.14-2ubuntu1).

Saya memperbarui 17,04-17,10 dan menghadapi hal yang sama ImportError: cannot import name _remove_dead_weakref. Python saya adalah 2.7.14
Csaba Toth

Dalam kasus saya, saya menggunakan lingkungan virtual dan saya menduga bahwa python di dalam lingkungan virtual itu sekarang tidak sinkron dengan versi sistem sehingga kesalahan ini terjadi. Saya menduga bahwa membangun kembali lingkungan virtual dari bawah ke atas dapat menyelesaikan masalah saya, meskipun sulit untuk menginstal semua paket :(
Csaba Toth

Jawaban:


26

Ini bukan solusi Ubuntu, tetapi karena pertanyaan ini muncul di hasil pencarian untuk kesalahan, saya ingin mengatakan bahwa saya memiliki kesalahan ini pada OSX karena sistem default saya Python adalah 2,7, dan saya menyeduh yang terpasang "python @ 2" sementara menginstal paket lain.

Jika Anda menggunakan OSX dan menggunakan homebrew, periksa paket-paket Anda yang terinstal dengan brew dengan menjalankan brew list, dan jika "python @ 2" muncul di daftar itu, dan Python 2.7 adalah sistem Anda Python, Anda dapat menghapus paket yang diinstal buatan denganbrew remove python@2 --ignore-dependencies


2
Ini terjadi setelah upgrade minuman menggantikan banyak paket dengan paket mereka @ versi yang baru ... Terima kasih!
Hugo H

2
Ini membantu saya. Saat menjalankan swiftpada Mac saya mendapatkan kesalahan yang disebutkan di atas. Ternyata itu karena menggunakan python2 dari minuman. Menghapusnya memperbaiki masalah saya.
jmurphyau

2
Terima kasih untuk ini. Itu membantu memecahkan lldbperingatan saya .
Steven Hepting

Terimakasih atas peringatannya. Saya baru saja memperbarui symlink saya di / usr / local / bin / python untuk menunjuk ke python Homebrew terbaru, daripada sistem python
matt

9

Jika Anda menggunakan lingkungan virtual, Anda harus membuatnya kembali. Kemungkinan lain adalah bahwa Anda menggunakan beberapa versi python berbasis sumber atau diinstal yang berselisih dengan sistem. Dalam hal ini Anda harus memilah-milah bahwa folder dan jalur yang tepat dikonfigurasi terlihat dari berbagai lingkungan.


3

Dalam kasus saya, itu adalah kesalahan yang berkaitan dengan lingkungan virtual. Jadi, menciptakan lingkungan virtual baru bekerja untuk saya. Berikut adalah daftar perintah yang dapat membantu Anda dalam hal yang sama.

Menginstal lingkungan virtual:

pip install virtualenv

Menciptakan lingkungan virtual baru:

virtualenv -p {env_name}

Mengaktifkan lingkungan virtual:

source env_name/bin/activate

Nonaktifkan lingkungan virtual Anda:

deactivate

OP tidak menyebutkan env virtual sehingga jawaban Anda tidak mengatasi masalah ketika env virtual tidak digunakan.
MikeM
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.