Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.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 pypi封装结构的Cython_Python_Cython_Cythonize - Fatal编程技术网

Python pypi封装结构的Cython

Python pypi封装结构的Cython,python,cython,cythonize,Python,Cython,Cythonize,我正在努力理解关于编译的Cython文档 cython似乎更喜欢distutils而不是setuptools 因此,我有一个结构类似于的python包 e、 g 以及默认的setup.py文件: import setuptools from package import name, version, description with open("README.md", "r") as fh: long_description = fh.read() setuptools.setup

我正在努力理解关于编译的Cython文档

cython似乎更喜欢
distutils
而不是
setuptools

因此,我有一个结构类似于的python包

e、 g

以及默认的
setup.py
文件:

import setuptools

from package import name, version, description

with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name=name,
    version=version,
    description=description,
    long_description=long_description,
    long_description_content_type="text/markdown",
    packages=setuptools.find_packages(),
    classifiers=[
        "Programming Language :: Python :: 3.5",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
)
我现在也在处理一个
cython\u setup.py
文件来构建一个编译版本

如果我想
cythonize
这个包中的所有内容,我会怎么做

我尝试将所有内容导入
\uuuu init\uuuu.pyx
,并且:

from distutils.core import setup
from Cython.Build import cythonize

setup(name='package', ext_modules=cythonize("package/__init__.pyx"))

但这实际上并不影响导入的代码…

我不明白你的问题:你没有cython模块,为什么你的安装文件中需要cython?也许简单的pyx文件会是一个更好的起点?您应该使用特定的cython文档:而不是distutils'@ead虽然有通过“cdef”类型改进cython编译的方法,但即使使用本机python,编译也可以提高性能。所以我只想知道一个人是如何天真地将一个软件包简单化的。@ead正是我不理解的那个文档导致我问这个问题question@SumNeuron将一个完整的包转换成一个.so Cython文件是相当复杂的(所以不要一开始就这么做!)。您可能也不想通过Cython运行
\uuuu init\uuuuu.py
文件(它们通常不包含“真实”代码,因此对您没有好处)。相反,您应该将所有的
子模块1a.py
等分别放到Cython中
from distutils.core import setup
from Cython.Build import cythonize

setup(name='package', ext_modules=cythonize("package/__init__.pyx"))