我正在尝试将一个Cython模块集成到我的项目中,但是我在正确编译它方面遇到了困难。 我已经将问题追踪到了这个最小示例:
假设我有两个文件a.py
和b.pyx
位于同一个目录中,如果我在a.py
中执行以下操作:
import pyximport; pyximport.install()
import b
如果一切正常,b.pyx
将会被成功编译和导入。
但是如果我在 a.py
中做这个操作,假设 a.py
和 b.pyx
都位于 dir1/dir2
目录下:
import os
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), '../..'))
import pyximport; pyximport.install()
import dir1.dir2.b
(尽管在此示例中有些毫无意义,但说明了阻止我从模块层次结构的其他地方导入a的原因),我会收到以下异常:
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 888, in _find_spec
AttributeError: 'PyxImporter' object has no attribute 'find_spec'
这是预期行为还是我的安装出了问题?(我在Windows 10上)注意:在SO上有一个标题非常相似的问题,但根本没有回答我的问题。