Each Answer to this Q is separated by one/two green lines.
I am using cython to generate faster code for a mathematical model.
I am having a hard time compiling the code, but somehow I managed to do so using a .bat:
setlocal EnableDelayedExpansion CALL "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /x64 /release set DISTUTILS_USE_SDK=1 C:\Python27\python.exe C:\gcsilve\trunk\myproject\myproject\cythonsetup.py build_ext --inplace PAUSE
It runs ok…
My question is regarding pyximport. I have old code written by someone else that uses pyximport.install(). I couldn’t figure out what it does and why I should use it, since I am already compiling the code by myself. So, can someone explain to me in a very simple (for dummies) way what pyximport does?
I have a project1, using cython.
I have a project2, that references project1.
pyximport is part of Cython, and it’s used in place of
import in a way.
If your module doesn’t require any extra C libraries or a special build setup, then you can use the pyximport module to load .pyx files directly on import, without having to write a setup.py file. It can be used like this:
>>> import pyximport; pyximport.install() >>> import helloworld Hello World
Straight from the Cython documentation
You can use
pyximport to automatically recompile and reload your
setup.py has generated, else you might load that extension module.
pyximport does not use
Let’s assume a
hello.pyx with a function
In : import pyximport In : pyximport.install(reload_support=True) In : from importlib import reload In : import hello In : hello.mean2(2,3)
Out : 2.5
Leave that window and go to your editor to change
Then go back to IPython and type
In : reload(hello);import hello;hello.mean2(2,3)
You will see some text informing about the recompilation.
Then the new result:
Out: 'Mean of 2 and 3 is 2.5'