我试图在python中使用setuptools来创建一个egg包,但是我得到了这个奇怪的错误:
error: each element of 'ext_modules' option must be an Extension instance or 2-tuple
我该如何解决这个问题?
答案 0 :(得分:13)
假设您已经安装了setuptools,
编辑egg包目标的setup.py
并替换import setup, Extension
以便从setuptools获取它们。
from setuptools import setup, Extension, Command
Rational:setuptools重新定义Extension
,因此它可能无法将 ext_modules 参数中的对象识别为有效的Extension对象。因此错误信息。
ext_modules 是setup()方法的一个参数,用于描述模块的扩展名,它在setup.py中指定。
setup(name='foo',
version='1.0',
ext_modules=[Extension('foo', ['foo.c'])],
)
答案 1 :(得分:3)
我不得不重新排序导入语句才能摆脱此错误。这段代码会产生错误:
from Cython.Build import cythonize
from setuptools import find_packages, setup
此代码不会产生错误:
from setuptools import find_packages, setup
from Cython.Build import cythonize
答案 2 :(得分:0)
这是因为与使用扩展程序导入的distutils发生冲突而导致w.r.t setuptools。我在安装gdsCAD时看到这个错误,所以我不得不更新setupext.py来成功安装