pip install construit-il toujours des modules d'extension avec le même compilateur que celui utilisé pour compiler la version actuelle de Python?
Par exemple, ce billet de blog a expliqué que le package numpy utilise du code C, qui doit être compilé avec le même compilateur que le Python lui-même:
Python 2.7.13 (par défaut, 21 août 2017, 11:46:40) [ MSC v.1900 64 bit (AMD64)] sur win32
nous indique quel compilateur a été utilisé. numpy et les autres packages doivent être compilés avec cette version identique.
3 Réponses :
Pip donne la priorité à la version sur votre PATH. Pip3 et Pip sont utilisés pour différencier les deux versions.
Cela ne concerne pas la question que j'ai posée
pip install n'installe jamais un compilateur. Vous devez avoir le compilateur avant d'exécuter pip install .
Voir https://wiki.python.org/moin/WindowsCompilers pour savoir quoi version de VC que vous devez installer pour différentes versions de Python.
Il serait beaucoup plus simple d'installer une roue précompilée. Dit numpy a beaucoup de roues précompilées . Actuellement, il existe des roues binaires pour Python 2.7, 3.5, 3.6 et 3.7 sur MacOS 64 bits, Linux 32 et 64 bits, Windows 32 et 64 bits. Tapez simplement pip install numpy et votre pip déterminera automatiquement sur quelle plate-forme il est exécuté et téléchargez et installez la bonne roue.
Oui , pip est construit sur le package distutils et par défaut, il applique les modules d'extension à compiler avec le même compilateur qu'un interpréteur lui-même.
La version du compilateur Windows est également forcée le même (ou, depuis Python 3.5, compatible ). Sur Unix-likes les mêmes indicateurs de compilateur et d'éditeur de liens utilisé pour compiler Python sera également utilisé pour compiler des extensions.
Notez qu'il s'agit plus d'une commodité et d'une sauvegarde que d'une exigence. Sauf pour certains cas particuliers Les extensions Python devraient fonctionner correctement lorsqu'elles sont construites avec une autre version du compilateur.
Python n'est pas un langage compilé. Parlez-vous de l'interprète?
Cela dépend de la façon dont vous avez installé pip. Lors de l'installation de pip si vous avez utilisé python2.7 alors pip installera les packages correspondant à ladite version de python
J'ai ajouté quelques exemples d'informations.