Ich bin nicht mehr in der Lage, ein bereits in Ubuntu 15.04 installiertes Paket zu aktualisieren. Pip funktioniert immer noch und installiert das Paket in /usr/local/python2.7/dist-packages
, aber der Pfad listet /usr/python2.7/dist-packages
an der Spitze, und selbst PYTHONPATH
kann nicht etwas über diese Linie bekommen. Ich glaube das funktioniert bei älteren Ubuntus. Ich habe versucht, etwas in /usr/python/site.py
zu finden, aber es scheint das Richtige zu tun. Das Hinzufügen von -S
scheint zu verhindern, dass die nicht-lokale Version oben ist. Ich habe das auf zwei Computern gesehen, glaube ich.Pip kann kein integriertes Paket in Ubuntu aktualisieren 15.04
Einige Beispiele für die Notwendigkeit: Aktualisieren, um eine erforderliche Funktion/Bugfix (für PILLOW, in meinem Fall) ohne APT eine Reihe von Paketen zu deinstallieren, die dieses Paket als Voraussetzung auflisten.
Bearbeiten: Zur Klarstellung lautet die Frage: Ich möchte die Verzeichnissuchreihenfolge neu anordnen, um Ubuntu 14.10 Verhalten wiederherzustellen. Es gibt bessere Möglichkeiten, dies auf vielen Systemen zu tun, aber ich möchte das integrierte apt-Paket nur mit einem oder zwei (möglichen) neueren Paketen wie IPython und ähnlichem verwenden, anstatt virtual-env und Anacoda (beide was ich auf anderen Systemen verwende). Es sieht so aus, als ob mein gewünschtes Verhalten das dokumentierte Debian-Verhalten ist, also bin ich mir nicht sicher, warum es den Pfad neu anordnet.
Hier ist der Weg, das Problem zu demonstrieren, bemerken die PYTHONPATH
Variable in der Mitte, mit zwei git Ordner:
>>> sys.path
['',
'/usr/lib/python2.7/dist-packages',
'/usr/local/lib/python2.7/dist-packages/requests-2.6.0-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/octave_kernel-0.10.0-py2.7.egg',
'/home/username/git/maya',
'/home/username/git/udaq/pyUDAQ',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
'/usr/lib/python2.7/dist-packages/wx-3.0-gtk2']
Als Referenz ich ein passendes System 14.04 ausgeführt wird, und es hat genau die erwartete Verhalten. Die beiden PYTHONPATH
Dirs kommen zuerst, dann später die lokale dist-packages
sind über dem eingebauten.
Ich denke, 'pip' und' apt' Kampf über Pakete ist eine sehr schlechte Idee. Ein viel saubererer Weg wäre, stattdessen zu 'virtualenvs' zu wechseln. – cel
Ich möchte meinen Computer jemandem übergeben können, der Anweisungen befolgt, aber nicht viel weiß. Ihm "ipython notebook" zu sagen ist einfacher, als ihm zu sagen, dass er zuerst ein virtuelles env aktivieren soll. Das ist im Allgemeinen eine gute Idee. –
In diesem Fall: Wechseln Sie zu "Anaconda" und installieren Sie die Pakete in der Root-Umgebung.Dann sind 'conda' und' pip' nun deine Paketmanager und 'apt' wird nicht stören. – cel