Prošel jsem několik poznámek, že není dobrý nápad provádět upgrade pip pomocí příkazu sudo. Moje otázka zní, pokud nedávám sudo, dostanu chyby oprávnění. Jak to mohu vyřešit? Také, jaký je důvod, proč není sudo navrženo pro upgrade pip?
$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.
Přijatá odpověď:
Nikdy neupgradujte verzi nástrojů poskytovanou OS mimo systém správy balíčků, protože pokud bude vydán nový balíček, přepíše vaše změny.
Takže sudo pip install --upgrade pip
je špatná věc. Systém balíčků OS věří, že kontroluje soubory a vy jste je přepsali. Výsledkem může být neobvyklé chování, včetně instalace staršího verzi, než jste si dříve nainstalovali!
Pokud chcete novější verzi, můžete si ji nainstalovat do uživatelského profilu
% 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
Tím se nainstaluje nejnovější verze do $HOME/.local/bin
% ls -l .local/bin/pip
-rwxr-xr-x 1 sweh sweh 223 Feb 16 21:49 .local/bin/pip
Pokud máte $HOME/.local/bin
na vaší PATH pak vždy vyzvednete programy nainstalované uživatelem pip.
Většinu času však nepotřebujete pro upgrade pip
.