【发布时间】:2012-03-27 02:08:10
【问题描述】:
我正在尝试将 cython 模块 data.pyx 导入另一个 cython 模块 user.pyx。 一切都编译得很好,但是当我尝试在 python 模块中调用 user.pyx 时,我收到错误“ImportError: No module named data”。
一切都在同一个目录中。
package/
__init__.py #empty
setup.py
data.pxd
data.pyx
user.pyx
我的 setup.py
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
ext_modules = [
Extension("data", ["data.pyx"]),
Extension("user", ["user.pyx"],include_dirs = ['myPackageDir'])
]
setup(
name = 'app',
cmdclass = {'build_ext': build_ext},
ext_modules = ext_modules
)
运行下面的 test.py 会报错。
import user #this line raised the 'ImportError: No module named data' below
user.doSomething()
我得到的例外是
Traceback:
File "test.py", line 1, in <module>
import package.user
File "user.pyx", line 1, in init user (user.c:3384)
ImportError: No module named data
我怎样才能使导入工作?感谢您的帮助。
【问题讨论】:
-
为什么在实际应该演示错误代码的情况下将代码编辑为工作代码?
-
@Niklas 我明白你的意思。通过我的编辑,帖子变得混乱。 Rob post 解决了错误“ImportError: no module named user”。但我的实际问题是错误'ImportError no module named data',我通过重新编译我的所有项目来解决这个问题。由于 Rob 帖子解决了一个真正的潜在问题,我将其标记为答案,即使这不是我的实际问题。对困惑感到抱歉。如果有更好的方法,请告诉我。