Bisakah Anda menghapus direktori dari instalasi python Anda, atau adakah file yang tersisa yang harus Anda hapus?
92
Ini bervariasi berdasarkan opsi yang Anda berikan install
dan konten file konfigurasi distutils pada sistem / dalam paket. Saya tidak percaya bahwa file apa pun diubah di luar direktori yang ditentukan dengan cara ini.
Khususnya, distutils tidak memiliki perintah uninstall saat ini.
Perlu juga dicatat bahwa menghapus paket / telur dapat menyebabkan masalah ketergantungan - utilitas seperti easy_install
upaya untuk mengatasi masalah tersebut.
Tiga hal yang terinstal dan perlu Anda hapus adalah:
Sekarang di sistem linux saya, ini langsung:
Tetapi pada sistem windows mereka lebih cenderung sepenuhnya berada dalam direktori distribusi Python. Saya tidak tahu tentang OSX kecuali lebih suka mengikuti pola linux.
sumber
Peretasan berbasis cap waktu lainnya:
touch /tmp/ts
python setup.py install --prefix=<PREFIX>
find <PREFIX> -cnewer /tmp/ts | xargs rm -r
sumber
| xargs rm -r
. Saya sarankan untuk memeriksa setiap file secara manual . Pada ext4 (dan sistem file lainnya), inifind
akan mencantumkan semua folder juga. Jika awalan Anda dulu/usr
, Anda akan menghapus/usr/*
.Ya, aman untuk hanya menghapus apa pun yang distutils terinstal. Itu berlaku untuk folder yang diinstal atau file .egg. Secara alami, apa pun yang bergantung pada kode itu tidak akan berfungsi lagi.
Jika Anda ingin membuatnya berfungsi kembali, cukup instal ulang.
Ngomong-ngomong, jika Anda menggunakan distutils juga pertimbangkan untuk menggunakan fitur multi-versi. Ini memungkinkan Anda untuk menginstal beberapa versi dari paket tunggal apa pun. Itu berarti Anda tidak perlu menghapus versi lama dari sebuah paket jika Anda hanya ingin menginstal versi yang lebih baru.
sumber
Di ubuntu 12.04, saya telah menemukan bahwa satu-satunya tempat yang perlu Anda lihat secara default ada di bawah
/usr/local/lib/python2.7/
Dan cukup hapus folder dan file terkait, jika ada!
sumber
Jika ini untuk tujuan pengujian dan / atau pengembangan, setuptools memiliki perintah pengembangan yang diperbarui setiap kali Anda membuat perubahan (jadi Anda tidak perlu menghapus dan menginstal ulang setiap kali membuat perubahan). Dan Anda juga dapat menghapus paket menggunakan perintah ini.
Jika Anda menggunakan ini, apa pun yang Anda nyatakan sebagai skrip akan ditinggalkan sebagai file yang tersisa.
sumber
install --record
+xargs rm
menghapus semua file dan meninggalkan direktori kosong.
Itu tidak ideal, itu harus cukup untuk menghindari konflik paket.
Dan kemudian Anda dapat menyelesaikan pekerjaan secara manual jika Anda ingin dengan membaca
files.txt
, atau lebih berani dan mengotomatiskan penghapusan direktori kosong juga.Penolong yang aman adalah:
Diuji dengan Python 2.7.6, Ubuntu 14.04.
sumber
Saya baru saja menghapus paket python, dan meskipun saya tidak yakin saya melakukannya dengan sempurna, saya cukup yakin.
Saya mulai dengan mendapatkan daftar semua file yang terkait dengan python, diurutkan berdasarkan tanggal, dengan asumsi bahwa semua file dalam paket saya akan memiliki stempel waktu yang kurang lebih sama, dan tidak ada file lain yang memilikinya.
Untungnya, saya telah menginstal python di bawah
/opt/Python-2.6.1
; jika saya telah menggunakan Python yang disertakan dengan distro Linux saya, saya harus menjelajahi semuanya/usr
, yang akan memakan waktu lama.Kemudian saya hanya memeriksa daftar itu, dan mencatat dengan lega bahwa semua hal yang ingin saya nuklir terdiri dari satu direktori
/opt/Python-2.6.1/lib/python2.6/site-packages/module-name/
, dan satu file/opt/Python-2.6.1/lib/python2.6/site-packages/module-x.x.x_blah-py2.6.egg-info
,.Jadi saya baru saja menghapusnya.
Inilah cara saya mendapatkan daftar file yang diurutkan berdasarkan tanggal:
find "$@" -printf '%T@ ' -ls | sort -n | cut -d\ -f 2-
(Saya pikir itu pasti GNU "temukan", omong-omong; rasa yang Anda dapatkan di OS X tidak tahu tentang "-printf '% T @'")
Saya menggunakannya sepanjang waktu.
sumber
Untuk Windows 7,
Panel Kontrol -> Program -> Copot Pemasangan
, kemudian
pilih paket python untuk dihapus.
sumber
untuk Python di Windows:
python -m pip uninstall "package_keyword" uninstall **** (y/n)?
sumber
Di Mac OSX, hapus 2 direktori ini secara manual di bawah pathToPython / site-packages / Anda akan berfungsi:
misalnya, untuk menghapus pyasn1 , yang merupakan proyek terinstal distutils:
Untuk mengetahui di mana paket situs Anda:
sumber
ERROR: flake8 3.7.9 has requirement pycodestyle<2.6.0,>=2.5.0, but you'll have pycodestyle 2.3.1 which is incompatible. ERROR: nuscenes-devkit 1.0.8 has requirement motmetrics<=1.1.3, but you'll have motmetrics 1.2.0 which is incompatible. Installing collected packages: descartes, future, torch, cachetools, torchvision, flake8-import-order, xmltodict, entrypoints, flake8, motmetrics, nuscenes-devkit Attempting uninstall: torch Found existing installation: torch 1.0.0 Uninstalling torch-1.0.0: Successfully uninstalled torch-1.0.0 Attempting uninstall: torchvision Found existing installation: torchvision 0.2.1 Uninstalling torchvision-0.2.1: Successfully uninstalled torchvision-0.2.1 Attempting uninstall: entrypoints Found existing installation: entrypoints 0.2.3 ERROR: Cannot uninstall 'entrypoints'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
Lalu saya ketik:
conda uninstall entrypoints pip install --upgrade pycodestyle pip install nuscenes-devkit
Selesai!
sumber