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