Jeśli Debian zachowuje się jak najnowsze wersje Ubuntu w odniesieniu do pip install
domyślnego celu, jest to całkiem łatwe: instaluje się w nim /usr/local/lib/
zamiast /usr/lib
( apt
domyślny cel). Sprawdź /ubuntu/173323/how-do-i-detect-and-remove-python-packages-installed-via-pip/259747#259747
Jestem użytkownikiem ArchLinux i podczas eksperymentów z pipem spotkałem ten sam problem. Oto jak rozwiązałem to w Arch.
find /usr/lib/python2.7/site-packages -maxdepth 2 -name __init__.py | xargs pacman -Qo | grep 'No package'
Kluczem jest tutaj /usr/lib/python2.7/site-packages
, do którego katalogu instaluje się pip, YMMV. pacman -Qo
jest jak łuk za pac Kage człowiek sprawdza ager na własność pliku. No package
jest częścią zamian daje gdy pakiet nie jest właścicielem pliku: error: No package owns $FILENAME
. Trudne obejście: pytam o to, __init__.py
ponieważ pacman -Qo
jest trochę nieświadomy, jeśli chodzi o katalogi :(
Aby to zrobić dla innych dystrybucji, musisz dowiedzieć się, gdzie pip
instaluje się rzeczy (po prostu sudo pip install
coś), jak zapytać o własność pliku (metoda Debian / Ubuntu dpkg -S
) i co to jest zwrot „żadna paczka nie posiada tej ścieżki” (Debian / Ubuntu is no path found matching pattern
). Użytkownicy Debiana / Ubuntu, strzeżcie się: dpkg -S
zawiodą, jeśli dacie mu link symboliczny. Po prostu rozwiąż najpierw, używając realpath
. Lubię to:
find /usr/local/lib/python2.7/dist-packages -maxdepth 2 -name __init__.py | xargs realpath | xargs dpkg -S 2>&1 | grep 'no path found'
Użytkownicy Fedory mogą spróbować (dzięki @eddygeek):
find /usr/lib/python2.7/site-packages -maxdepth 2 -name __init__.py | xargs rpm -qf | grep 'not owned by any package'