首页 > 解决方案 > 导入 cythonized 代码时出现错误“动态模块未定义模块导出功能”

问题描述

我一直在尝试导入 .pyd 文件,但每次错误不断出现:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dynamic module does not define module export function (PyInit_myfile)

通过许多帖子研究了可能几个小时,我安装了 Visual Code,添加了环境变量,添加了 MinGw,为 setup.py 尝试了许多不同的参数。我在一些帖子中发现 python 的 cython 版本是强制的,所以我什至安装了 cython 的源代码以删除任何版本依赖项。仍然没有区别。

我已经阅读了阅读以更改/添加 distutils.cfg(设置为 mingw:: 无效)的帖子以及大多数论坛上的几乎每一篇文章。还有 gcc 编译器[这又给了我一堆错误]

操作系统——Windows 10

蟒蛇——3.7.2

【MSVC、cython、mingw都安装好了】

安装程序.py::

from distutils.core import setup
from Cython.Build import cythonize
directives = {'linetrace': False, 'language_level': 3}
setup(ext_modules = cythonize('myfile.pyx'))

myfile.pyx OR myfile.py:: [我只是用一个简单的Hello world作为测试,真实文件太大]

这些是尝试过的不同流程:

1) cython -3 myfile.py cythonize -a -i myfile.py

2)python setup.py build_ext --inplace

也是通过删除 .cp37-win32 部分来更改输出文件的名称

标签: pythonpython-3.xcythoncythonize

解决方案


推荐阅读