comment installer des distutils python

90

Je viens d'avoir de l'espace sur un serveur VPS (fonctionnant sous ubuntu 8.04), et j'essaye d'installer django dessus. Le serveur a installé python 2.5, mais je suppose que son installation n'est pas standard. Quand j'exécute le script d'installation pour django, j'obtiens

amitoj@ninja:~/Django-1.2.1$ python setup.py install
Traceback (most recent call last):
  File "setup.py", line 1, in <module>
    from distutils.core import setup
ImportError: No module named distutils.core

Je suis perplexe. Tous les articles sur Internet me disent comment installer des modules à l'aide de distutils. Mais comment puis-je me distutils? Quelqu'un peut-il me diriger vers l'archive des distutils? J'ai regardé dans /usr/lib/local/python2.5, /usr/lib/python2.5 etc., et comme prévu, il n'y a pas de distutils à trouver.

Néo
la source

Réponses:

6

Le moyen le plus simple d'installer setuptools lorsqu'il n'est pas déjà là et que vous ne pouvez pas utiliser de gestionnaire de packages est de télécharger ez_setup.py et de l'exécuter avec l'interpréteur Python approprié. Cela fonctionne même si vous avez plusieurs versions de Python: exécutez simplement ez_setup.py une fois avec chaque Python.

Edit: notez que les versions récentes de Python 3 incluent setuptools dans la distribution, vous n'avez donc plus besoin d'installer séparément. Le script mentionné ici n'est pertinent que pour les anciennes versions de Python.

Duncan
la source
3
Merci pour la réponse, mais cela n'a pas fonctionné. J'obtiens cette erreur "import _md5 ImportError: Aucun module nommé _md5". L'installation de base de python est assez foirée je suppose. J'irai avec l'installation locale. Merci beaucoup de toute façon.
Neo du
2
La syntaxe de ce script semble obsolète. À tout le moins, il ne fonctionnera pas en python3.6, ce n'est donc pas une excellente solution pour le moment.
Jmills
1
@Jmills Python à partir de 3.4 inclut setuptools donc pas besoin d'exécuter ce script sur les versions récentes. La question a été posée à propos de Python 2.
Duncan
5
@Duncan Oh oui, cela dit Python2 - donc cette erreur peut être rencontrée lors de l'installation de Python3.6 sur Ubuntu 16.04, c'est ce qui m'a amené ici, et sudo apt-get install python3-distutilsje la corrige. Mais votre note clarifie la différence de version.
Jmills
2
Il semble que les 14.04 et 16.04 l'ont tous les deux "intégrés", mais dans le 18.04, vous devez installer python3-distutilsFWIW ...
rogerdpack
202

Je sais que c'est une vieille question, mais je viens de rencontrer le même problème en utilisant Python 3.6 dans Ubuntu, et je suis capable de le résoudre à l'aide de la commande suivante:

sudo apt-get install python3-distutils
ettanany
la source
6
Ce package n'existe littéralement pas dans Ubuntu 16.04. packages.ubuntu.com/search?keywords=python3-distutils
Nicholi
7
A travaillé comme un charme le 18.04
habitats
2
Obtenir l'erreur E: Le paquet 'python3-distutils' n'a pas de candidat à l'installation dans Ubuntu 18.4
Ganesh
1
Identique à @Ganesh, has no installation candidateUbuntu 16.04.6 LTS
hugo blanc
Je l'ai installé pour python3.7 mais quand pour python3.6 il ne montre aucun module trouvé distutils.utils, que dois-je faire?
Sarthak
20

Si vous ne parvenez pas à installer l'un de ces éléments:

sudo apt-get install python-distutils
sudo apt-get install python3-distutils

Essayez plutôt ceci:

sudo apt-get install python-distutils-extra

Réf: https://groups.google.com/forum/#!topic/beagleboard/RDlTq8sMxro

Ben Amos
la source
Errors were encountered while processing: oracle-java11-installer-local E: Sub-process /usr/bin/dpkg returned an error code (1)
J'obtiens
mais mon java -versionapparence va bien: java version "11.0.4" 2019-07-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.4+10-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.4+10-LTS, mixed mode)
mLstudent33
Quelle est la différence entre python3-distutils-extra(sur Ubuntu16.04) et python3-distutils(impossible de localiser sur python3-distutils-extra)?
skytree
Par packages.debian.org: "Ce paquet (python3-distutils-extra) fournit des fonctions supplémentaires aux distutils et setuptools de Python." Il semblerait donc que distutils soit une dépendance de distutils-extra. Pourquoi installer distutils-extra réussirait là où l'installation de distutils échoue, je ne peux pas le dire.
Ben Amos le
15

vous pouvez utiliser sudo apt-get install python3-distutilsavec l'autorisation root.

je crois que ça a fonctionné ici

Mohammad Heydari
la source
12

Vous pouvez installer le python-distutilspackage. sudo apt-get install python-distutilsdevrait suffire.

Manoj Govindan
la source
Je ne peux pas faire ça. C'est un serveur VPS, je n'ai pas de privilèges sudo. Je pense installer un python local. Soit ça, soit je trouve l'archive distutils pour python 2.5.
Neo
3
Si vous installez le commutateur Python local vers 2.6 ou 2.7, ils sont distutilsfournis avec .
Manoj Govindan
2
Tous les Python ont inclus des distutils depuis 1999. Ici, il ressemble à l'un des systèmes d'exploitation stupides qui ont divisé la bibliothèque standard en paquets arbitraires python et python-devel.
Éric Araujo
7

J'ai rencontré cette erreur sur un Beaglebone Black en utilisant la distribution standard Angstrom. Il exécute actuellement Python 2.7.3, mais n'inclut pas les distutils. La solution pour moi était d'installer distutils. (Il fallait des privilèges su.)

    su
    opkg install python-distutils

Après cette installation, la commande précédemment erronée s'est bien déroulée.

    python setup.py build
puissant
la source
2

Si vous êtes dans un scénario où vous utilisez l'une des dernières versions d'Ubuntu (ou des variantes comme Linux Mint), une qui est fournie avec Python 3.8, alors vous ne pourrez PAS avoir Python3.7 distutils, l'alias ne pourra pas utiliser pipou pipenvavec Python 3.7, voir: Comment installer python-distutils pour les anciennes versions de python

De toute évidence, utiliser Python3.8 ne pose aucun problème.

Zoltan Fedor
la source
0

Si le système Python est en panne (c'est-à-dire que les packages du système d'exploitation divisent les distutils dans un package python-devel) et que vous ne pouvez pas demander à un administrateur système d'installer la pièce manquante, alors vous devrez installer votre propre Python. Il nécessite des fichiers d'en-tête et une chaîne d'outils de compilation. Si vous ne pouvez pas les avoir, essayez de compiler un Python sur un ordinateur identique et copiez-le simplement.

Éric Araujo
la source
-8

Vous pouvez essayer d'installer Python 2.6,

sudo apt-get install python2.6

Cela devrait installer le dernier paquet Python et distutils.

sheki
la source
Je ne peux pas faire de sudo. Je suppose que je devrai obtenir une installation locale de Python.
Neo du