GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Faire en sorte que `pip` utilise Python3.7 qui n'est pas par défaut ?

Je sais que c'est une question similaire à celles déjà posées à plusieurs reprises, mais je n'arrive toujours pas à obtenir une solution fiable.
J'ai de nombreuses 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 la 2.7. Je sais que je ne devrais pas changer la valeur par défaut, car d'autres l'ont fait et cela a entraîné des problèmes aussi graves que des pannes du système.
Cependant, je dois installer un logiciel via pip :

pip install damn_software

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 ?

MODIFIER  :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 

Réponse acceptée :

Exécutez simplement 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.

Le pip l'exécutable n'est pas exactement défini comme étant une version fixe de toute façon, quelles que soient les prochaines mises à jour, il est probable qu'il le remplace à nouveau. De plus, il se casse parfois pour d'autres raisons comme des incompatibilités de version de toute façon. Je ne l'utiliserais généralement pas directement du tout, sauf peut-être lorsque vous êtes dans un venv (environnement virtuel Python) où il est exactement défini de quoi il s'agit.

Connexes :Problème avec le GPU Nvidia et Ubuntu 16.04 ?
Ubuntu
  1. Comment faire en sorte que Startx utilise Xinitrc alternatif?

  2. Est-il possible de créer et d'utiliser des menus dans Vim (basé sur un terminal) ?

  3. Comment faire en sorte que Skype utilise Notify-osd ?

  4. Utilisation de la commande :`commande` ?

  5. Comment faire en sorte que Firefox utilise le coffre-fort de porte-clés Gnome pour le stockage et la récupération de mots de passe ?

Comment faire en sorte que l'application Linux de Telegram utilise le cadre de fenêtre système

Comment utiliser et tirer le meilleur parti de la commande fuser sous Linux

Comment installer Pip sur Ubuntu

Comment faire bon usage de la commande 'grep'

Comment installer et utiliser les outils Python PIP sur Ubuntu 20.04 LTS

Comment faire en sorte que les commandes de Mathematica 8 utilisent tous les cœurs ?