小编zyz*_*ler的帖子

如何从python的父文件夹导入依赖的cython模块

想象一下以下文件夹结构:

/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)

c++ python cython cythonize

1
推荐指数
1
解决办法
1000
查看次数

标签 统计

c++ ×1

cython ×1

cythonize ×1

python ×1