我正在编写一些使用包mpi4py
和cython_gsl
的cython代码。从Python我可以import mpi4py
和import cython_gsl
没有错误。我也可以from cython_gsl cimport *
进行cythonizes,编译和正确运行。但是,如果我from mpi4py cimport *
,我会收到错误'mpi4py.pxd' not found
。如果我在调用cython时提供选项-I /path/to/python/lib/python3.5/site-packages
,我可以使它工作。
这两个软件包的__init__.pxd
个文件(我认为是cimport
使用的文件)位于
/path/to/python/lib/python3.5/site-packages/cython_gsl/__init__.pxd
/path/to/python/lib/python3.5/site-packages/mpi4py/include/mpi4py/__init__.pxd
我的问题是:为什么cython能够在没有明确包含任何路径的情况下找到__init__.pxd
的{{1}},而不是cython_gsl
的{{1}}?当然__init__.pxd
的位置位于更深的路径上,但为什么包含mpi4py
目录使cython能够找到mpi4py
时找到site-packages
?< / p>
我的假设是site-packages/mpi4py/include/mpi4py/__init__.pxd
将自己添加到安装时由cython包含的目录列表中。在调用cython时,如何查看默认包含的所有目录的列表?