想象一下以下文件夹结构:
/project
run.py
/Helper
Helper.pxd
Helper.pyx
setup.py
/Settings
Settings.pxd
Settings.pyx
setup.py
Run Code Online (Sandbox Code Playgroud)
Helper 使用 Settings.pxd 中定义的 Settings 和 PySettings 类型。因此在 Helper.pxd 我正在做:
from Settings cimport Settings, PySettings
Run Code Online (Sandbox Code Playgroud)
在Helper目录下的setup.py中我放
include_path=[".", "../Settings/"]
Run Code Online (Sandbox Code Playgroud)
在 cythonize 命令中。因此 Helper 知道 Settings 并且一切都编译。
在 run.py 中,我想导入 Settings 和 Helper。设置导入工作正常,但在执行时
import Helper.Helper
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Traceback (most recent call last):
File "run.py", line 1, in <module>
import Helper.Helper
File "../Settings/Settings.pxd", line 6, in init Helper
AttributeError: module 'Settings' has no attribute 'PySettings'
Run Code Online (Sandbox Code Playgroud)
一旦所有内容都在同一目录中,此问题就会消失。
为了完整起见,您将在下面找到整个代码:
/项目/运行.py
import Settings.Settings as S
import …Run Code Online (Sandbox Code Playgroud)