2016-04-28 8 views
5

मैं एक प्रोजेक्ट बना रहा हूं जो पायथन ओपनसीवी का उपयोग करता है। मेरी छवि प्रसंस्करण थोड़ी धीमी है, इसलिए मैंने सोचा कि मैं .pyd फ़ाइल बनाकर कोड को तेज़ी से बना सकता हूं (मैंने इसे कहीं पढ़ा है)।एक .pyd फ़ाइल कैसे बनाएं?

मैं साइथन का उपयोग कर .c फ़ाइल बनाने में सक्षम हूं, लेकिन .pyd कैसे बनाना है? जबकि वे .dll की तरह हैं, तो क्या मुझे पहले .dll बनाना चाहिए और इसे परिवर्तित करना चाहिए? और मुझे लगता है कि वे मंच-स्वतंत्र नहीं हैं, यूनिक्स पर समकक्ष क्या हैं?

किसी भी मदद के लिए धन्यवाद!

उत्तर

3

आपको टर्मिनल में 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 

यह महत्वपूर्ण है कि मैं तुम्हें संकलक स्थापित किया है लगता है कि (माइक्रोसॉफ्ट विजुअल उदाहरण के लिए पायथन 2.7 के लिए सी ++ कंपाइलर पैकेज)। आप https://github.com/cython/cython/wiki/CythonExtensionsOnWindows

+0

में अधिक जानकारी प्राप्त कर सकते हैं इसके लिए धन्यवाद, मैंने इसे पहले से ही समझा है :)। क्या मैं gcc का उपयोग कर '.so' फ़ाइलों को बनाने के लिए * nix पर इसका उपयोग कर सकता हूं? – linusg

+1

हां, यह कोड मैं विंडोज और * निक्स (मेरे मामले में उबंटू) दोनों पर उपयोग करता हूं – sebacastroh

संबंधित मुद्दे