当前位置: 首页 > 面试题库 >

Cython编译错误:动态模块未定义模块导出功能

冯元徽
2023-03-14
问题内容

我正在Cython中构建一个程序包。我使用以下作为结构setup.py

from distutils.core import setup
from distutils.extension import Extension
from Cython.Build import cythonize
import numpy
import scipy

extensions = [
    Extension("xxxxx",["xxxx/xxxxx.pyx"],
    include_dirs=[numpy.get_include(),"."]),
    Extension("nnls",["xxxxx/xxxxx.pyx"],
              include_dirs=[numpy.get_include(),"."]),
]

setup(
    name='xxxxxx',
    version='0.0.0',
    description='''********''',
    url='xxxxxxx',
    author='xxxxx',
    author_email='xxxxx',
    packages=[
        'xxxxx',
    ],
    install_requires=[
        'cython',
        'numpy',
        'scipy',
    ],
    ext_modules=cythonize(extensions),
)

但是,在Python 3中安装时出现错误。它在Python 2中运行,但是在Python 3中未编译,但出现以下错误:

动态模块未定义模块导出功能

我怎么解决这个问题?是setup.py不编译的原因的结构吗?


问题答案:

您需要使用Python 3(python3 setup.py build_ext可能是--inplace)调用setup.py
。这是因为Python 3为init模块启动时调用的函数定义了不同的名称,因此您需要使用Python 3进行构建以确保生成正确的名称。

请参阅动态模块未定义初始化函数(PyInit_fuzzy),以及如何在Cython的setup.py中指定Python3源?以获得更多细节(这是这些问题的重复部分,但是我认为不是)



 类似资料:
  • 我只在Spring Boot项目中使用IntelliJ IDE。请注意,我没有使用任何Kotlin项目。但是,今天,我在下面有一个错误。任何专业人士。请帮忙解决这个问题!谢谢,错误:Kotlin:模块是用不兼容的Kotlin版本编译的。其元数据的二进制版本为1.5.1,预期版本为1.1.13。

  • 问题内容: 因此,我正在使用RequireJS和React,尝试加载已安装的第三方组件: 结构在这里:https : //github.com/rackt/react- autocomplete/tree/master/lib 现在,我有一个main.js文件,它是在加载requireJS时启动的,看起来像这样: 现在,它们全部加载正常,但是第三条require语句为第三方组件中的main.js文

  • 我正在尝试使用AndroidX.Camera包创建一个按需功能模块。当活动膨胀了包括PreviewView在内的布局时,我感到崩溃。注意,如果我只是使用像TextView这样的简单的东西,那么模块会正确地加载并显示正确的布局,所以我不认为(但愿无论如何)这是我的动态特性设置/下载的一个问题。 同样,如果我在基础应用模块中包含相机依赖关系,这一切都很好,但似乎我应该能够在动态功能模块中做到这一点。我

  • 问题内容: 我有一台受信任的远程服务器,其中存储了许多自定义Python模块。我可以通过HTTP(例如,使用)作为文本/纯文本来获取它们,但是我无法将获取的模块代码保存到本地硬盘上。如何将代码作为完全可操作的Python模块(包括其全局变量和导入)导入? 我想我必须使用和模块功能的某种组合,但是我还无法使其工作。 问题答案: 看起来这应该可以解决问题:导入动态生成的模块 另外,按照ActiveSt

  • 16.6. 动态导入模块 好了,大道理谈够了。让我们谈谈动态倒入数据吧。 首先,让我们看一看正常的导入模块。 import module 语法查看搜索路径寻找已命名模块并以名字导入它们。你甚至于可以以这种方法,以逗号分割同时导入多个模块,本章代码前几行就是这样做的。 例 16.13. 同时导入多个模块 import sys, os, re, unittest 这里同时导入四个模块:sys (

  • 关于在ES6中使用导入导出,我得到以下错误: SyntaxError:导出声明只能出现在顶层 我上网找办法解决这个问题,但我做不到。谁能解释一下。我是ES6的新手,特别是导入和导出。(我使用StealJS完全是为了这种东西)谢谢! js文件有: 应用程序JS functions.js