2016-04-28 9 views
5

Ich erstelle ein Projekt, das Python OpenCV verwendet. Meine Bildverarbeitung ist ein bisschen langsam, also dachte ich, ich könnte den Code schneller machen, indem ich eine Datei erstelle (ich habe das irgendwo gelesen).Wie erstelle ich eine .pyd Datei?

Ich bin in der Lage, eine .c Datei mit Cython zu erstellen, aber wie man eine machen? Während sie eine Art von .dll sind, sollte ich eine .dll zuerst machen und es konvertieren? Und ich denke, sie sind nicht plattformunabhängig, was sind die Entsprechungen von Unix?

Danke für jede Hilfe!

Antwort

3

Sie müssen eine setup.py Datei in einem Terminal ausführen. Dies ist ein Beispiel, die 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) 

Im Terminal (cmd in Windows) verwendet man den Befehl auszuführen hat

python setup.py build_ext --inplace 

Es ist wichtig, dass ich nehme an, Sie den Compiler installiert haben (Microsoft Visual C++ - Compiler-Paket für Python 2.7 zum Beispiel). Sie können weitere Informationen in https://github.com/cython/cython/wiki/CythonExtensionsOnWindows

+0

Dank dafür finden, ich habe es schon herausgefunden :). Kann ich dieses on * nix benutzen, um '.so' Dateien mit gcc zu erstellen? – linusg

+1

Ja, das ist der Code, den ich auf Windows und * nix (Ubuntu in meinem Fall) verwende – sebacastroh