Problemas con la comstackción de código C en Python

Yo uso Anaconda para Python 2.7.10 en Windows 7, 64 bit. También utilizo Visual Studio 2010. Instalé Microsoft Visual Studio para Python.

Cuando bash comstackr un código C en python (dentro de cmd):

C:\Anaconda\sms-tools-master\software\transformations_interface>python compileModule.py build_ext --inplace 

Recibo muchas advertencias y algunos errores de que la parte final son las siguientes:

 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\link.exe /DLL / nologo /INCREMENTAL:NO /LIBPATH:C:\Anaconda\libs /LIBPATH:C:\Anaconda\PCbuild\am d64 m.lib /EXPORT:initutilFunctions_C build\temp.win-amd64-2.7\Release\utilFunct ions.obj build\temp.win-amd64-2.7\Release\cutilFunctions.obj /OUT:C:\Anaconda\sm s-tools-master\software\models\utilFunctions_C\utilFunctions_C.pyd /IMPLIB:build \temp.win-amd64-2.7\Release\utilFunctions_C.lib /MANIFESTFILE:build\temp.win-amd 64-2.7\Release\utilFunctions_C.pyd.manifest LINK : fatal error LNK1181: cannot open input file 'm.lib' error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\BIN\\ amd64\\link.exe' failed with exit status 1181 

Por favor, déjame ver cómo se puede solucionar este problema.

Comente la línea en setup.py que dice setup.py libraries=['m'] y ejecute de nuevo.

La necesidad de vincularse con m podría ser una cosa del GCC para vincular la biblioteca matemática, que es administrada por MSVCR en el entorno de Windows.

Y si solo comento

 libraries=['m'] 

y use

 ext_modules = [Extension("utilFunctions_C",sourcefiles, include_dirs=py_inc + np_inc)] 

luego recibo muchas advertencias (no errores) cuya parte final es:

C: \ Archivos de progtwig (x86) \ Microsoft Visual Studio 10.0 \ VC \ BIN \ amd64 \ link.exe / DLL / nologo / INCREMENTAL: NO / LIBPATH: C: \ Anaconda \ libs / LIBPATH: C: \ Anaconda \ PCbuild \ am d64 / EXPORT: initutilFunctions_C build \ temp.win-amd64-2.7 \ Release \ utilFunctions.o bj build \ temp.win-amd64-2.7 \ Release \ cutilFunctions.obj / OUT: C: \ Anaconda \ sms-tool s- master \ software \ models \ utilFunctions_C \ utilFunctions_C.pyd / IMPLIB: build \ temp. win-amd64-2.7 \ Release \ utilFunctions_C.lib /MANIFESTFILE:build\temp.win-amd64-2.7 \ Release \ utilFunctions_C.pyd.manifest cutilFunctions.obj: advertencia LNK4197: exportación ‘initutilFunctions_C’ especificados tiempos múltiples; utilizando la primera especificación Creando la comstackción de biblioteca \ temp.win-amd64-2.7 \ Release \ utilFunctions_C.lib y obj ect build \ temp.win-amd64-2.7 \ Release \ utilFunctions_C.exp

Creo que el problema ya está resuelto. Gracias LPs !!

El solo hecho de eliminar ..raries libraries=['m'] .. de ext_modules también me ayudó a comstackr en Windows 2010. Sin errores ni advertencias. Así es como se ve finalmente,

 ext_modules = [Extension("utilFunctions_C",sourcefiles , include_dirs=py_inc + np_inc)] 

Gracias un montón

Editar …..

Aquí está el código completo para compileModule.py Por favor, consulte los comentarios para obtener más detalles.

 from distutils.core import setup, Extension from distutils.sysconfig import * from distutils.util import * from Cython.Distutils import build_ext import numpy import os import os.path #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION try: from distutils.command.build_py import build_py_2to3 \ as build_py except ImportError: from distutils.command.build_py import build_py try: from Cython.Distutils import build_ext except ImportError: use_cython = False else: use_cython = True py_inc = [get_python_inc()] np_lib = os.path.dirname(numpy.__file__) np_inc = [os.path.join(np_lib, 'core/include')] ext_inc = os sourcefiles = ["utilFunctions.c", "cutilFunctions.pyx"] setup( cmdclass = {'build_ext': build_ext}, #ext_modules = [Extension("utilFunctions_C",sourcefiles, libraries=['m'], include_dirs=py_inc + np_inc)] ext_modules = [Extension("utilFunctions_C",sourcefiles , include_dirs=py_inc + np_inc)] )