2016-04-28 29 views
5

Python OpenCV kullanan bir proje oluşturuyorum. Görüntü işlemim biraz yavaş, bu yüzden kodu bir .pyd dosyası oluşturarak daha hızlı yapabileceğimi düşündüm (bunu bir yerlerde okudum)..pyd dosyası nasıl oluşturulur?

Cython'u kullanarak bir .c dosyası oluşturabiliyorum, ancak .pyd nasıl yapılır? Onlar bir tür .dll iken, önce .dll yapmalı ve dönüştürmeli miyim? Ve bence platformdan bağımsız değiller, Unix'te eşdeğerler nelerdir?

Yardımlarınız için teşekkürler!

cevap

3

Bir uçbirimde setup.py dosyasını çalıştırmanız gerekir. Bu bir sen komutunu çalıştırmak zorunda terminali (Windows cmd) olarak 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) 

kullanan bir örnektir

python setup.py build_ext --inplace 

Ben size derleyici yüklemiş varsayalım önemlidir (Microsoft Visual Python 2.7 için C++ Derleyici Paketi). Daha fazla bilgiyi https://github.com/cython/cython/wiki/CythonExtensionsOnWindows

+0

adresinde bulabilirsiniz. Bunun için şimdiden düşündüm :). Bunu gcc kullanarak '.so' dosyalarını oluşturmak için * nix'de kullanabilir miyim? – linusg

+1

Evet, bu hem Windows hem de * nix'de kullandığım kod (benim durumumdaki Ubuntu) – sebacastroh

İlgili konular