GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Python – Der richtige Weg, um Pip in Stretch Debian zu aktualisieren?

Ich bin einige Hinweise durchgegangen, dass es keine gute Idee ist, ein Pip-Upgrade mit dem Befehl sudo durchzuführen. Meine Frage ist, wenn ich sudo nicht gebe, bekomme ich Berechtigungsfehler. Wie kann ich das lösen? Und was ist der Grund, warum sudo nicht vorgeschlagen wird, um pip zu aktualisieren?

$python -m pip install --upgrade pip
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting pip
  Using cached https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 19.2.3
    Uninstalling pip-19.2.3:
      Successfully uninstalled pip-19.2.3
  Rolling back uninstall of pip
  Moving to /home/abc/.local/bin/pip
   from /tmp/pip-uninstall-V4F8Pj/pip
  Moving to /home/abc/.local/bin/pip2
   from /tmp/pip-uninstall-V4F8Pj/pip2
  Moving to /home/abc/.local/bin/pip2.7
   from /tmp/pip-uninstall-V4F8Pj/pip2.7
  Moving to /home/abc/.local/lib/python2.7/site-packages/pip-19.2.3.dist-info/
   from /home/abc/.local/lib/python2.7/site-packages/~ip-19.2.3.dist-info
  Moving to /home/abc/.local/lib/python2.7/site-packages/pip/
   from /home/abc/.local/lib/python2.7/site-packages/~ip
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/pip-20.0.2.dist-info/top_level.txt'
Consider using the `--user` option or check the permissions.

WARNING: You are using pip version 19.2.3, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Akzeptierte Antwort:

Aktualisieren Sie niemals die vom Betriebssystem bereitgestellte Version von Tools außerhalb des Paketverwaltungssystems, denn wenn ein neues Paket veröffentlicht wird, werden Ihre Änderungen überschrieben.

Also sudo pip install --upgrade pip ist eine schlechte Sache. Das OS-Paketsystem glaubt, dass es die Dateien kontrolliert, und Sie haben sie überschrieben. Es kann zu merkwürdigem Verhalten kommen, einschließlich der Installation eines älteren Version, als Sie zuvor installiert haben!

Wenn Sie eine neuere Version wünschen, können Sie diese im Benutzerprofil installieren

% pip install --upgrade --user pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
    100% |################################| 1.4MB 615kB/s 
Installing collected packages: pip
Successfully installed pip-20.0.2

Dadurch wird die neueste Version in $HOME/.local/bin installiert

% ls -l .local/bin/pip                                           
-rwxr-xr-x 1 sweh sweh 223 Feb 16 21:49 .local/bin/pip

Wenn Sie $HOME/.local/bin haben auf Ihrem PATH werden Sie immer vom Benutzer installierte pip-Programme abrufen.

Meistens brauchen Sie es jedoch nicht um pip zu aktualisieren .


Debian
  1. Erstellen von Linux-Kernels auf Debian-Art

  2. So aktualisieren Sie Debian 8 Jessie auf Debian 9 Stretch

  3. So ändern Sie die Standard-Python-Version unter Debian 9 Stretch Linux

  4. So installieren Sie Pip unter Ubuntu 18.04, Debian 9 und Linux Mint 19

  5. So aktualisieren Sie Debian 8 auf Debian 9 Stretch

So aktualisieren Sie von Debian 9 Stretch auf Debian 10 Buster

So aktualisieren Sie von Debian 8 Jessie auf Debian 9 Stretch

Aktualisieren Sie Debian 9 Stretch auf Debian 10 Buster über die Befehlszeile

So installieren Sie Pip auf Debian 9 Stretch

So installieren Sie Python 3.7 auf Debian 9 Stretch

So aktualisieren Sie Debian 9 Stretch auf Linux Debian 10 Buster