El error de comstackción de Cython “no es un nombre de módulo válido”

Intento comstackr en Windows un archivo de Cython (.pyx), un archivo que acabo de guardar de .py. Aquí está mi proyecto dir ruta.

c:\..\Project\App\Analyzer\ _init_.py Few_other_files.py consolidated_loop_C.pyx cl_setup.py 

Aquí está mi cl_setup.py

 from Cython.Build import cythonize try: from setuptools import setup from setuptools import Extension except ImportError: from distutils.core import setup from distutils.extension import Extension setup( name = "Consolidated Loop", ext_modules = cythonize("consolidated_loop_C.pyx") ) 

Estoy utilizando la siguiente statement para cumplir en la misma carpeta.

 python cl_setup.py build_ext --inplace 

Pero estoy recibiendo el error de abajo. Mi conjetura es que me faltan ciertos parámetros para cythonize (), intenté investigar sin ningún tipo de suerte.

introduzca la descripción de la imagen aquí

Primero, cambia tu archivo setup.py para usar solo distutils

 from Cython.Build import cythonize from distutils.core import setup, Extension setup( name = "Consolidated Loop", ext_modules = cythonize("consolidated_loop_C.pyx") ) 

Esto es para facilitar la depuración de posibles replicadores.

Luego, a partir de algunos experimentos y otras publicaciones SO, Python creará una extensión de cython con la configuración creará una subcarpeta cuando __init__.py exista y el comando `python setup.py build_ext –inplace` siempre creará un nuevo directorio

Le sugiero que mueva su archivo cython a un subdirectorio o elimine el archivo __init__.py . El último problema muy probablemente hace que Python o Cython adivinen el nombre del módulo del directorio actual, de ahí el problema del guión. Además, los archivos setup.py no pueden vivir en el directorio del módulo y eso causará problemas.

Si pretende distribuir o empaquetar su código, es preferible la opción anterior (mover de manera limpia los archivos en un subdirectorio con su propio __init__.py , etc.). Si no, simplemente elimine __init__.py y listo. Esto creará, con build_ext --inplace , un módulo de Python disponible localmente consolidated_loop_C.so .