Python Cython bdist_egg与setuptools一起创建的包无效
我正在尝试编译一个*.pyx文件。它在同一目录中的Python Cython bdist_egg与setuptools一起创建的包无效,python,cython,setuptools,Python,Cython,Setuptools,我正在尝试编译一个*.pyx文件。它在同一目录中的\uuuu init\uuuu.py中使用一些定义和常量。项目结构为: setup.py Foo/__init__.py Foo/Foo.pyx 设置命令如下所示: from setuptools import setup from distutils.extension import Extension from Cython.Distutils import build_ext import numpy setup( cmdcla
\uuuu init\uuuu.py
中使用一些定义和常量。项目结构为:
setup.py
Foo/__init__.py
Foo/Foo.pyx
设置命令如下所示:
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
)
当egg被构建和部署时,问题就出现了。生成的蛋具有以下结构:
Foo.so
Foo.py
Foo/__init__.py
现在,Foo.py
包含一些动态导入代码,基本上导入了*.so文件。但是,由于存在Foo/\uuuu init\uuuuuuuuuuupy
,import Foo
尝试仅从\uuuuuuuuuuuuuuuuuuuupy
导入符号,其中只包含一些常量(所有相关代码实际上都在Foo.so
)
我已经通过将\uu init\uuuuuuuuupy
中的所有定义粘贴到Foo.pyx
中解决了这个问题,但我正在尝试找出一个合适的解决方案
任何建议都将不胜感激 我将问题归结为
setup()
命令的一个无关参数。从上的文档判断,我不需要packages=['Foo']
参数,事实上这就是导致它创建内部Foo
包的原因,它把所有事情都搞糟了