Pip ile kurulan Python paketlerini nasıl algılar ve kaldırırım?

58

Python paketlerini pip yerine apt-get kullanarak sistemime yanlışlıkla yükledim. Bunu iki şekilde yaptım:

  • virtualenv'in eski bir sürümünü kullanarak, virtualenv oluştururken --no-site-packages eklemeyi unuttum - bundan sonra pip install 'yi çağırdığımda, virtualenv yerine sisteme yüklenen Python paketleri
  • doğru şekilde kurulmuş bir virtualenv'de, sudo pip install somepackage yazdım - virtualenv yerine sisteme yüklenen sudo

Bunu farkettim çünkü bir virtualenv'in dışında pip freeze yazdım ve orada olmaması gereken bazı Python paketlerini tespit ettim. Yani şimdi sorum şu:

  • Sistemde hatalı olarak yüklenmiş olan tüm Python paketlerini (yani pip freeze listesinde görünen ancak apt-get ile yüklenmemiş Python paketleri) nasıl tanımlarım?
  • Bunları nasıl kaldırabilirim?
sordu d3vid 08.08.2012 10:48

5 cevap

51

Ubuntu Oneiric (ve daha yeni sürümler bekliyorum) pip paketlerini /usr/local/lib/python2.7/dist-packages ve apt paketine /usr/lib/python2.7/dist-packages olarak yükler. Bu yüzden, eski dizini ve bulduğunuz her paketi sudo pip uninstall kontrol edin.

    
verilen cevap Capi Etheriel 22.02.2013 13:48
9

Pip şu anda İşletim Sistemine ait bir şeyi kaldırmaya çalışan kaldırma komutlarını yok sayar. Eksik bir pakette olduğu gibi hata yapmaz. Yani, şimdi aşağıdaki işlemle kaldırabilirsiniz:

pip freeze > dump.txt

-e "düzenlenebilir yükleme" satırlarını, == işaretinden (vim cinsinden %s;==.*;;g ) sonra her şeyi kaldırmak için dökülmüş dosyayı düzenleyin, boşluklar için yeni satırları değiştirin (vim cinsinden %s;\n; ;g ). Daha sonra, sahip olunmayan tüm paketleri

ile kaldırabilirsiniz
cat dump.txt | xargs sudo pip uninstall -y

Bu işlemi iki kez yapmak zorunda kaldım, çünkü birkaç paket ~/.local/lib yüklenmiştir.

    
verilen cevap Henry Schreiner 26.10.2015 15:54
6

AFAIK sudo pip install , /usr/local/lib/pythonVERSION/dist-packages yüklenecek. Paketleri sistemden kaldırmak için sudo pip uninstall çalıştırmanız gerekir. % Co_de% 'i paket meta verileri için görünüyor ve yüklü olan her şeyi, yani hem pip'ten hem de virtualenvs'lerin dışındaki apt-get'i listeler. Sanal ortam içinde yalnızca bu sanal ortama uygulanabilir paketleri listelemek için pip freeze seçeneği vardır, ancak sanal ortamda da varsayılan durum gibi görünüyor. Sanırım ilgili paketleri -l da silebilirsiniz ama sanırım çok uygun bir yöntem değil.

    
verilen cevap sagarchalise 08.08.2012 13:01
5

Pip takılı bir paketi kaldırmak için, klavyenizde Terminali açmak için Ctrl + Alt + T tuşlarına basın. Açıldığında, aşağıdaki komutu çalıştırın.

pip uninstall < package-name >

Paketleri aramak için

pip search <package you want to search for>

Hangi Python paketlerinin pip tarafından kurulduğunu belirlemek için, freeze komutuyla, kurulu paketlerin ve sürümlerinin listesini verecektir. Tüm örnekleri kaldırmanızı ve sudo apt-get komutunu kullanarak yeniden yüklemenizi öneririm

sudo apt-get install python3
    
verilen cevap Mitch 08.08.2012 11:13
-1

Bu Homebrew ile bir ilgisi var. Homebrew'ı kurup birkaç şey için kullanana kadar Mac Air'de pyodbc ile ilgili hiçbir sorun yaşamadım. Bu iş parçacığı üzerinde, benim için çalışan bir çözümle sonuçlanan buldum.

"Eğer Homebrew'ınız varsa, sadece ODBC başlıklarını yükleyin:

$ brew install unixodbc

ve "pip install pyodbc" yi tekrar çalıştırın. "

Bu% 100 benim için problemi çözdü ve sadece bir dakika sürdü. Bi dene.

    
verilen cevap Pogo 04.07.2017 18:15

Etiketlerdeki diğer soruları oku