web-dev-qa-db-fra.com

Comment utiliser le compilateur gcc de MinGW lors de l'installation de Python utilisant Pip?

J'ai configuré MinGW et distutils alors maintenant je peux compiler des extensions en utilisant cette commande:

setup.py install

Le compilateur gcc de MinGW sera utilisé et le package sera installé. Pour cela, j'ai installé MinGW et créé distutils.cfg fichier avec le contenu suivant:

[build]
compiler = mingw32

C'est cool mais maintenant j'aimerais utiliser tous les avantages du pip. Existe-t-il un moyen d'utiliser le même compilateur gcc de MinGW dans pip? Alors que quand je lance ceci:

pip install <package name>

pip utilisera le compilateur gcc de MinGW et compilera le code C si nécessaire?

Actuellement, j'obtiens cette erreur: Unable to find vcvarsall.bat. Il semble que pip ne sache pas que j'ai un compilateur gcc. Comment puis-je configurer pip pour utiliser le compilateur gcc?

60
demalexx
  • installer MinGW avec l'option du compilateur C++ cochée
  • ajouter C:\MinGW\bin à votre CHEMIN
  • dans PYTHONPATH\Lib\distutils, créez un fichier distutils.cfg et ajoutez ces lignes:
[build]
compiler=mingw32
91
Syl

Même si le fichier de configuration résout ce problème, ce n'est pas toujours une option. J'ai eu le même problème pour mon processus d'installation en ligne de commande et je n'ai pas pu modifier les fichiers de configuration sur toutes les machines et les distributions python.

Voici ma solution:

Pour mingw32 et les packages, qui utilisent VC++ par défaut:

pip install --global-option build_ext --global-option --compiler=mingw32 <package_Zip>

Pour Visual C++ sur WinPython, qui utilise mingw32 par défaut:

pip install --global-option build_ext --global-option --compiler=msvc <package_Zip>
16
Anton K

Peut-être que vous n'avez pas mis distutils.cfg au bon endroit? J'ai résolu le même problème en créant un fichier appelé pydistutils.cfg dans c:\Documents and Settings\myuser, avec le même contenu que le vôtre. J'ai fait comme ça et ça marche. HTH

4
Paolo