Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Cython bdist_egg与setuptools一起创建的包无效_Python_Cython_Setuptools - Fatal编程技术网

Python Cython bdist_egg与setuptools一起创建的包无效

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

我正在尝试编译一个*.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(
    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
包的原因,它把所有事情都搞糟了