如何创建.pyd文件?

时间:2016-04-28 17:46:56

标签: python performance opencv compilation cython

我正在创建一个使用Python OpenCV的项目。我的图像处理有点慢,所以我认为通过创建.pyd文件(我在某处读取)可以使代码更快。

我可以使用Cython创建.c文件,但如何制作.pyd?虽然它们是一种.dll,我应该首先制作.dll并转换它吗?我认为它们不是平台无关的,Unix上的等价物是什么?

感谢您的帮助!

2 个答案:

答案 0 :(得分:7)

您必须在终端中运行setup.py文件。这是一个使用numpy

的示例
try:
    from setuptools import setup
    from setuptools import Extension
except ImportError:
    from distutils.core import setup
    from distutils.extension import Extension

from Cython.Distutils import build_ext
import numpy as np

ext_modules = [Extension("my_code_cython",["my_code_cython.pyx"]),
               Extension("another_code_cython",["another_code_cython.pyx"])]

setup(
    name= 'Generic model class',
    cmdclass = {'build_ext': build_ext},
    include_dirs = [np.get_include()],
    ext_modules = ext_modules)

在终端(Windows中的cmd)中,您必须执行命令

python setup.py build_ext --inplace

重要的是,我认为您已经安装了编译器(例如,用于Python 2.7的Microsoft Visual C ++编译器包)。您可以在https://github.com/cython/cython/wiki/CythonExtensionsOnWindows

中找到更多信息

答案 1 :(得分:0)

将cythonize与各自的依赖项配合使用:

from setuptools.extension import Extension
extensions.append(Extension("write the file names.pyx"))
from Cython.Build import cythonize
ext_modules = cythonize(extensions)

然后

setup(ext_modules=ext_modules, **setup_kwargs)