missing cimport in module '.' - bug?
Hello, The setup.py script of our package "kwant" uses Cython.Build.cythonize. Everything works well, except that for pyx files that cimport a module from "." an error message is generated. E.g. for the file "kwant/linalg/lapack.pyx" that contains the line from . cimport f_lapack The following message appears whenever setup.py is run: missing cimport in module '.': kwant/linalg/lapack.pyx No error message appears for files that cimport only from somewhere else than ".", e.g.: from .defs cimport gint The said messages do not seem to cause any problems, but they are of course somewhat of a nuiscance. They seem to be created by Cython.Build.Dependencies.cimported_files(). The culprit seems to be the function find_pxd in that module that does not seem to handle properly the case when module is ".". To check out the problem, download "kwant" from PyPI and execute, for example, "./setup.py --help". Cheers, Christoph
Christoph Groth schrieb am 03.05.2016 um 16:19:
The setup.py script of our package "kwant" uses Cython.Build.cythonize. Everything works well, except that for pyx files that cimport a module from "." an error message is generated. E.g. for the file "kwant/linalg/lapack.pyx" that contains the line
from . cimport f_lapack
The following message appears whenever setup.py is run:
missing cimport in module '.': kwant/linalg/lapack.pyx
No error message appears for files that cimport only from somewhere else than ".", e.g.:
from .defs cimport gint
The said messages do not seem to cause any problems, but they are of course somewhat of a nuiscance. They seem to be created by Cython.Build.Dependencies.cimported_files(). The culprit seems to be the function find_pxd in that module that does not seem to handle properly the case when module is ".".
Yes, that's a known problem. It only impacts the dependency collector that decides if a rebuild is necessary, and which is intentionally kept simple. It does not have an effect on the compiler itself. Looks like no-one has worked on this so far, but the correct code is available in other places (obviously) where the imports are resolved. Patches welcome. Stefan
participants (2)
-
Christoph Groth -
Stefan Behnel