Estoy tratando de importar un módulo cython data.pyx a otro módulo cython user.pyx. Todo compila bien, pero cuando intento llamar a user.pyx en un módulo de python, obtengo el error 'ImportError: ningún módulo llamado data'.Cython: ImportError: Ningún módulo llamado 'myModule': cómo llamar a un módulo cython que contiene un cimport a otro nódulo cython?
Todo está en el mismo directorio.
package/
__init__.py #empty
setup.py
data.pxd
data.pyx
user.pyx
Mi setup.py
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
ext_modules = [
Extension("data", ["data.pyx"]),
Extension("user", ["user.pyx"],include_dirs = ['myPackageDir'])
]
setup(
name = 'app',
cmdclass = {'build_ext': build_ext},
ext_modules = ext_modules
)
la ejecución regular de voluntad test.py elevó el error.
import user #this line raised the 'ImportError: No module named data' below
user.doSomething()
La excepción que se ve es
Traceback:
File "test.py", line 1, in <module>
import package.user
File "user.pyx", line 1, in init user (user.c:3384)
ImportError: No module named data
¿Cómo puedo hacer el trabajo de importación? Gracias por cualquier ayuda.
¿Por qué editó su código en el código de trabajo cuando en realidad debería mostrar el código incorrecto? –
@Niklas Veo tu punto. Con mi edición, la publicación se vuelve confusa. Rob post resuelve el error 'ImportError: no module named user'. Pero mi problema real fue el error 'ImportError no module named _data_', que resolví recompilando todo mi proyecto. Como la publicación de Rob resuelve un problema potencial real, lo marqué como respuesta, incluso si no era mi problema real. Perdón por la confusion. Si hay una mejor manera, por favor dígame. –