Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Cython(默认)包含目录_Python_Python 3.x_Include_Cython_Mpi4py - Fatal编程技术网

Python Cython(默认)包含目录

Python Cython(默认)包含目录,python,python-3.x,include,cython,mpi4py,Python,Python 3.x,Include,Cython,Mpi4py,我正在编写一些cython代码,它使用包mpi4py和cython\u gsl。从Python中,我可以执行导入mpi4py和导入cython\u gsl而不会出错。我还可以通过cython\u gsl cimport*进行,cython\u gsl cimport*可以正确地进行编译和运行。但是,如果我从mpi4py cimport*执行,则会得到错误“mpi4py.pxd”未找到。如果在调用cython时提供选项-I/path/to/python/lib/python3.5/site pac

我正在编写一些cython代码,它使用包
mpi4py
cython\u gsl
。从Python中,我可以执行
导入mpi4py
导入cython\u gsl
而不会出错。我还可以通过cython\u gsl cimport*进行
,cython\u gsl cimport*
可以正确地进行编译和运行。但是,如果我从mpi4py cimport*执行
,则会得到错误
“mpi4py.pxd”未找到
。如果在调用cython时提供选项
-I/path/to/python/lib/python3.5/site packages
,我就可以让它工作

用于这两个包的
\uuuu init\uuuuuuuuuuuuuuuuuuupxd
文件(我相信是
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能够为
cython\u gsl
找到
\uuu init\uuuuuuuuuuuuuuuuuupxd
,而不显式地包含任何路径,而不是
mpi4py
\uuuu init\uuuuuuuuuuuuuuuuuuuuuuupxd
?确保
mpi4py
的目录位于更深的路径,但是为什么包含
site packages
目录使cython能够在已经能够找到
site packages/mpi4py/include/mpi4py/\uu init\uuuuuuuuuuuuuuxd
的情况下找到
site packages/cython\u gsl/\uuuu init\uuuuuuuuuuuuuuuuuuuuuu.pxd


我的假设是,
cython\u gsl
将自己添加到cython安装时要包含的目录列表中。调用cython时,如何查看默认包含的所有目录的列表?

在目录中也有一个空的
\uuuu init\uuuuuuuuuuy.py
可能会有所帮助,因为我认为Python使用它来确定什么是包(尽管它实际上加载了pyd文件)。我觉得这个包裹有点让人困惑。。。