如何创建.pyd文件?

lin*_*usg 7 python performance opencv compilation cython

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

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

谢谢你的帮助!

seb*_*roh 6

您必须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)
Run Code Online (Sandbox Code Playgroud)

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

python setup.py build_ext --inplace
Run Code Online (Sandbox Code Playgroud)

重要的是我想你已经安装了编译器(例如,用于Python 2.7的Microsoft Visual C++编译器包).您可以在https://github.com/cython/cython/wiki/CythonExtensionsOnWindows中找到更多信息.

  • 是的,这就是我在 Windows 和 *nix 上使用的代码(在我的例子中是 Ubuntu) (2认同)