Saya tidak sengaja menginstal paket Python ke sistem saya menggunakan Saya kebetulan melihat ini karena saya mengetik di pip
bukan apt-get
. Saya melakukan ini dengan dua cara:--no-site-packages
ketika membuat virtualenv -
setelah itu ketika saya menelepon pip install
, paket-paket Python di mana diinstal ke sistem daripada virtualenvsudo pip install somepackage
- sudo diinstal ke sistem daripada virtualenvpip freeze
luar virtualenv, dan melihat beberapa paket Python terdaftar yang seharusnya tidak ada di sana. Jadi sekarang pertanyaan saya adalah:pip freeze
daftar, tetapi tidak diinstal dengan apt-get
]?
Jawaban:
Ubuntu Oneiric [dan saya mengharapkan versi yang lebih baru juga] menginstal paket pip /usr/local/lib/python2.7/dist-packages
, dan apt
paket ke /usr/lib/python2.7/dist-packages
. Jadi cukup periksa direktori sebelumnya dan sudo pip uninstall
setiap paket yang Anda temukan di sana.
Pip saat ini mengabaikan perintah untuk menghapus instalan yang mencoba untuk menghapus sesuatu yang dimiliki oleh OS. Itu tidak kesalahan, seperti halnya dengan paket yang hilang. Jadi, sekarang Anda dapat menghapus instalasi dengan proses berikut:
pip freeze > dump.txt
Edit file yang dibuang untuk menghapus -e
baris "instal yang dapat diedit", semuanya setelah ==
tanda [ %s;==.*;;g
dalam vim], tukar baris baru dengan spasi [ %s;\n; ;g
dalam vim]. Kemudian
Anda dapat menghapus semua paket yang tidak dimiliki dengan
cat dump.txt | xargs sudo pip uninstall -y
Saya harus melakukan prosedur ini dua kali, karena beberapa paket juga diinstal ~/.local/lib
.
AFAIK sudo pip install
akan diinstal /usr/local/lib/pythonVERSION/dist-packages
. Anda perlu menjalankan sudo pip uninstall
untuk menghapus instalasi paket sistem yang luas. Tampaknya pip freeze
mencari metadata paket dan akan mendaftar apa pun yang diinstal yaitu dari pip dan apt-get di luar virtualenvs. Ada -l
opsi di dalam
lingkungan virtual untuk mendaftar paket-paket yang hanya berlaku untuk lingkungan virtual itu tetapi tampaknya juga merupakan kasus default di dalam lingkungan virtual. Saya pikir Anda bisa menghapus paket-paket terkait /usr/local/lib/pythonVERSION/dist-packages
juga tetapi metode yang tidak terlalu nyaman kurasa.
Untuk menghapus paket yang diinstal melalui pip, cukup tekan Ctrl+ Alt+ Tdi keyboard Anda untuk membuka Terminal. Ketika terbuka, jalankan perintah di bawah ini.
pip uninstall
Untuk mencari paket
pip search
Untuk menentukan paket Python mana yang diinstal oleh pip, dengan freeze
perintah, yang akan memberi Anda daftar paket yang diinstal dan versinya. Saya akan menyarankan menghapus semua instance, dan menginstal ulang menggunakan sudo apt-get
perintah
sudo apt-get install python3
Saya perlu membersihkan ruang disk dari paket Python dengan aman. Meskipun ini adalah pembersihan lengkap dari paket, saya perlu memindahkan versi Python juga jadi saya tidak perlu paket lama. Saya menggunakan yang berikut ini untuk mendapatkan semua nama paket saya, lewati 2 baris pertama dan ambil kolom pertama, dan hapus instalasi tanpa interaksi pengguna:
pip list | awk 'NR>2 {print $1}' | xargs -I {} pip uninstall -y {}
Ini ada hubungannya dengan Homebrew. Saya tidak punya masalah dengan pyodbc di Mac Air sampai saya menginstal Homebrew dan menggunakannya untuk beberapa hal. Saya menemukan utas ini di github yang berakhir dengan solusi yang bekerja untuk saya.
"Jika Anda memiliki Homebrew, cukup instal header ODBC:
$ brew install unixodbc
dan jalankan "pip install pyodbc" lagi. "
Ini 100% menyelesaikan masalah bagi saya dan hanya butuh beberapa saat. Cobalah.