如何使用 cython 构建整个 python 项目
how to build whole python project with cython
我有一个包含许多模块、文件和文件夹的 PySide 项目。我还使用了 Numpy、Matplotlib 和许多其他模块。
我想用cython构建这个项目。代码是纯粹的 python,我希望 cython 将所有依赖项添加在一起,就像使用 pyinstaller
时一样
是否可能,或者 cython 只是用于编写扩展(dll、so、lib)?
如果需要,您可以逐个文件对模块进行 Cython 化,但是所有依赖项将保持它们在 Python 中的方式。 Cython 不提供像 pyinstaller 那样嵌入所有必需模块的机制。
然而,这是个坏主意。科学 python 中优化的一般方法是我们将计算昂贵的代码移植到 Cython/C/Fortran 部分,同时为了方便将其余部分保留在纯 Python 中。
按照您的建议进行操作会 a) 难以维护 b) 缓慢,因为使用 Cython 不仅仅是编译原始 Python 代码,您需要做很多工作才能获得显着的性能提升,而对所有代码执行此操作只是浪费时间。
最重要的是,要么仅将 Cython 用于您的部分代码,这将是有益的,并使用 pyinstaller 等构建您的项目,或者切换到 C++ 或任何其他编译语言,如果那是您正在寻找的语言。
我有一个包含许多模块、文件和文件夹的 PySide 项目。我还使用了 Numpy、Matplotlib 和许多其他模块。
我想用cython构建这个项目。代码是纯粹的 python,我希望 cython 将所有依赖项添加在一起,就像使用 pyinstaller
是否可能,或者 cython 只是用于编写扩展(dll、so、lib)?
如果需要,您可以逐个文件对模块进行 Cython 化,但是所有依赖项将保持它们在 Python 中的方式。 Cython 不提供像 pyinstaller 那样嵌入所有必需模块的机制。
然而,这是个坏主意。科学 python 中优化的一般方法是我们将计算昂贵的代码移植到 Cython/C/Fortran 部分,同时为了方便将其余部分保留在纯 Python 中。
按照您的建议进行操作会 a) 难以维护 b) 缓慢,因为使用 Cython 不仅仅是编译原始 Python 代码,您需要做很多工作才能获得显着的性能提升,而对所有代码执行此操作只是浪费时间。
最重要的是,要么仅将 Cython 用于您的部分代码,这将是有益的,并使用 pyinstaller 等构建您的项目,或者切换到 C++ 或任何其他编译语言,如果那是您正在寻找的语言。