带有setuptools的Cython bdist_egg会创建无效的包

时间:2017-11-28 10:06:19

标签: python cython setuptools

我正在尝试编译* .pyx文件。它在同一目录中的__init__.py内使用一些定义和常量。项目结构是:

setup.py
Foo/__init__.py
Foo/Foo.pyx

,setup命令如下:

from setuptools import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import numpy

setup(
    cmdclass = {'build_ext': build_ext},
    ext_module = [ Extension(name='Foo', sources=['Foo/Foo.pyx']) ],
    include_dirs=[numpy.get_include()],
    name='Foo',
    packages=['Foo'],
    zip_safe=True
)

鸡蛋建造和展开时出现问题。得到的蛋具有以下结构:

Foo.so                  
Foo.py                  
Foo/__init__.py      

现在,Foo.py包含一些基本上导入* .so文件的动态导入代码。但是,由于存在Foo/__init__.pyimport Foo尝试仅从__init__.py导入符号,其中只包含一些常量(所有相关代码实际上都在Foo.so中)。

我已经通过将__init__.py中的所有定义粘贴到Foo.pyx来解决此问题,但我试图找出适当的解决方案。

感谢任何建议!

0 个答案:

没有答案