2010-07-21 38 views
56

que configuran MinGW y distutils así que ahora puedo compilar extensiones usando este comando: compilador gccCómo usar el compilador gcc de MinGW al instalar el paquete Python con Pip?

setup.py install 

de MinGW será utilizada y se instalará el paquete. Para que he instalado el archivo MinGW y created distutils.cfg con los siguientes contenidos:

[build] 
compiler = mingw32 

Es fresco, pero ahora me gustaría utilizar todos los beneficios de PIP. ¿Hay alguna forma de usar el mismo compilador gcc de MinGW en pip? De manera que cuando corro esto:

pip install <package name> 

pip utilizará compilador gcc de MinGW y compilar código C si es necesario?

Actualmente recibo este error: Unable to find vcvarsall.bat. Parece que pip no sabe que tengo el compilador gcc. ¿Cómo puedo configurar pip para usar el compilador gcc?

+2

Otro consejo: asegúrese de que el archivo se llame * distutils.cfg * y no * distutils.cfg.txt *. En ocasiones, a Windows le gusta agregar la extensión * .txt * cuando crea un nuevo archivo de texto. – sffc

Respuesta

4

Quizás no haya puesto distutils.cfg en el lugar correcto? Resolví el mismo problema al crear un archivo llamado pydistutils.cfg dentro de c: \ Documents and Settings \ myuser, con el mismo contenido que el tuyo. Lo hice de esta manera y funciona. HTH

+0

Gracias por su propuesta, aunque ya no hago esto :) – demalexx

+3

Puse un archivo pydistutils.cfg con '[build] compiler = mingw32' en mi directorio msys $ HOME (c: \ mingw \ msys \ 1.0 \ home \ ) y luego llamo a pip desde mi shell msys. Eso funciona bien para mí tanto dentro como fuera de virtualenvs. @Paolo, tiene sentido que si estuviera usando un shell CMD, lo pondría en% USERPROFILE% que es HOME para Windows. –

88
  • instalar MinGW opción de compilador de C++ con marcada
  • añadir C:\MinGW\bin a su PATH
  • en PYTHONPATH\Lib\distutils, crear un archivo distutils.cfg y añadir estas líneas:

[build] compiler=mingw32

+2

La creación del archivo distutils.cfg fue lo que me solucionó esto: estaba intentando instalar un paquete con pip y obtuve el temido error "No se pudo encontrar vcvarsall.bat". Gracias. –

+13

Recuerda que debes cambiar esto para el pitón en tu virtualenv si usas uno. – markijbema

+5

Gracias. Aún tedioso Si solo Pip tuviera una opción '--compiler' https: // github.com/pypa/pip/issues/18 Por favor, péselo en –

14

Aunque El archivo de configuración resuelve este problema, no siempre es una opción. Tuve el mismo problema con el proceso de instalación de mi línea de comandos y no pude cambiar los archivos de configuración en todas las máquinas y distribuciones de Python.

Esta es mi solución:

Para mingw32 y paquetes, que utilizan VC++ como predeterminada:

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

Para Visual C++ en WinPython, que utiliza mingw32 como predeterminada:

pip install --global-option build_ext --global-option --compiler=msvc <package_zip> 
Cuestiones relacionadas