web-dev-qa-db-fra.com

faire `pip` utiliser python3.7 non par défaut

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 
2
Py-ser

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.

4
Byte Commander

installer pip3 par

Sudo apt-get install python3-pip

puis ajoutez cette ligne à ~/.bashrc (ou équivalent)

alias pip=pip3

source le bashrc

source ~/.bashrc

maintenant tu peux faire

pip install damn_software

Il utilisera python3 par défaut

vous pouvez également utiliser conda ou venv pour installer pip

2
Nic Wanavit