How to create a .pyd file?
You have to run a setup.py
file in a terminal. This one is an example that uses 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)
In the terminal (cmd in Windows) you have to execute the command
python setup.py build_ext --inplace
It is important that I suppose you have installed the compiler (Microsoft Visual C++ Compiler Package for Python 2.7 for example). You can find more information in https://github.com/cython/cython/wiki/CythonExtensionsOnWindows
linusg
Updated on July 30, 2022Comments
-
linusg almost 2 years
I'm creating a project that uses Python OpenCV. My image processing is a bit slow, so I thought I can made the code faster by creating a
.pyd
file (I read that somewhere).I am able to create a
.c
file using Cython, but how to make a.pyd
? While they are a kind of.dll
, should I make a.dll
first and convert it? And I think they're not platform-independent, what are equivalents on Unix?Thanks for any help!
-
linusg about 8 yearsThanks for that, I've figured it out already :). Can I use this on *nix to create
.so
files using gcc? -
sebacastroh about 8 yearsYes, that's the code I use on both Windows and *nix (Ubuntu in my case)
-
Breno over 2 yearsThe issue with this, at least for me, is that I do not know how to specify a different compiler using
setuptools
(ordistutils
). For example, an Intel compiler in Windows.