Je sais que c'est une question similaire à celles déjà posées à plusieurs reprises, mais je ne parviens toujours pas à obtenir une solution fiable. J'ai plusieurs versions de python installées sur mon Ubuntu 16.04, de la 2.7 à la dernière 3.7.4.
La valeur par défaut est 2,7. Je sais que je ne devrais pas changer la valeur par défaut, car d'autres l'ont fait et cela a posé des problèmes aussi graves que des pannes de système. Cependant, je dois installer un logiciel via pip:
pip install damn_software
ce qui nécessite python> = 3.6
:~$ pip install damn_software
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 damn_software
Using cached https://files.pythonhosted.org/packages/cc/19/632db1d5095a35b08ba000d63e1ceffaf56c730dbd259f021e1fb7a75f68/damn_software-0.1.8.tar.gz
ERROR: Command errored out with exit status 1:
command: /usr/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-qDPgIM/damn_software/setup.py'"'"'; __file__='"'"'/tmp/pip-install-qDPgIM/damn_software/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' Egg_info --Egg-base pip-Egg-info
cwd: /tmp/pip-install-qDPgIM/damn_software/
Complete output (1 lines):
ERROR: Python (3, 5) or later is required by software-helpers for damn_software
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py Egg_info Check the logs for full command output.
Je ne sais pas comment contourner cela? Peut-être un lien symbolique?
EDIT : J'ai dû exécuter les commandes supplémentaires suivantes avant l'installation:
python3.7 -m pip install --user --upgrade pip
python3.7 -m pip install your_packages
Sudo apt install python3.7-dev
Il suffit d'exécuter l'interpréteur Python de la version souhaitée, avec pip
comme module à exécuter, comme:
python3.6 -m pip install some_package
De cette façon, vous pouvez être sûr à 100% que l'interpréteur avec lequel vous lancez vos scripts est le même que celui pour lequel vous gérez les packages pip. Aucune modification du système nécessaire.
L'exécutable pip
n'est pas exactement défini de toute façon comme étant une version fixe, quelles que soient les mises à jour qui le remplaceraient probablement à nouveau. De plus, il se casse parfois pour d'autres raisons, comme des incompatibilités de version de toute façon. Je ne l'utilisais généralement pas du tout directement, sauf peut-être lorsque vous êtes dans un venv (environnement virtuel Python) où il est exactement défini de quoi il s'agit.