Differences between revisions 1 and 2
Revision 1 as of 2006-04-28 07:51:58
Size: 2906
Editor: cacheng
Comment:
Revision 2 as of 2006-04-28 07:57:45
Size: 2809
Editor: cacheng
Comment:
Deletions are marked like this. Additions are marked like this.
Line 24: Line 24:
-------------------------------------------
Line 29: Line 27:
Create a working directory (e.g. D:\pyrex_module\). Write a pyrex module and save it with a "pyx" extension (e.g. "primes.pyx", code available on the Pyrex homepage) Create a working directory (e.g. {{{D:\pyrex_module\}}}). Write a pyrex module and save it with a {{{pyx}}} extension (e.g. {{{primes.pyx}}}, code available [http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/) here])
Line 32: Line 30:
Write the following python script and save it as "setup.py" in your working directory. Write the following python script and save it as {{{setup.py}}} in your working directory.
Line 45: Line 43:
If you want to compile several modules, duplicate the line starting with "Extension" and replace "primes" by your module names. If you want to compile several modules, duplicate the line starting with {{{Extension}}} and replace {{{primes}}} by your module names.
Line 48: Line 46:
In your working directory, create a batch file called "build_and_install.bat" containing the following lines, where "PythonXX" should be replaces by your Python version (e.g. "Python24"). To run the batch, double-click the file. You will see many "Warning" messages during the building process: do not worry, it is normal. In your working directory, create a batch file called {{{build_and_install.bat}}} containing the following lines. To run the batch, double-click the file. You will see many "Warning" messages during the building process: do not worry, it is normal.
Line 50: Line 48:
 C:\Python24\python.exe setup.py build_ext install
 pause
{{{C:\Python24\python.exe setup.py build_ext install
pause}}}
Line 54: Line 52:
Mission completed. The file "primes.pyd" (a "pyd" is a Python Extension DLL, equivalent of .so in Unix) is now located in "C:\Python24\Lib\site-packages" and the "primes" module is available in Python. In your working directory, you can delete the file "primes.c" and the "build" folder created by the building process. Mission completed. The file {{{primes.pyd}}} (a {{{pyd}}} is a Python Extension DLL) is now located in {{{C:\Python24\Lib\site-packages}}} and the {{{primes}}} module is available in Python. In your working directory, you can delete the file {{{primes.c}}} and the {{{build}}} folder created by the building process.
Line 58: Line 56:
>>> import primes {{{>>> import primes
Line 60: Line 58:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

--------------------------------------------
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]}}}

Step-by-step guide to install Pyrex on Windows and compile your first extension.

A: Pyrex installation on Windows XP

step A.1

Install [http://www.python.org Python] (we used version 2.4.2)

step A.2

Run the windows installer for [http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/) Pyrex] (e.g. Pyrex-0.9.3.1.win32.exe)

step A.3

Install [http://www.mingw.org/download.shtml Mingw], the gcc compiler for Windows (download and run MinGW-5.0.2.exe and choose only the "base tools": mingw-runtime 3.9, w32api-3.6, binutils 2.15.91 and gcc-core 3.4.2. Add Mingw path C:\MinGW\bin to the Windows Path environment variable. If you already have cygwin installed, add C:\MinGW\bin before the Cygwin path.

step A.4

Edit the file c:/Python2x/Lib/distutils/distutils.cfg (if it does not exist, create it) and add the following lines: {{{[build] compiler = mingw32}}}

step A.5

In order to make minGW link with msvcr71.dll, edit the text file c:\mingw\lib\gcc\mingw32\3.2.4\specs and change -lmsvcrt to -lmsvcr71. Now MinGW will link with the same C runtime (CRT) as Python 2.4.

B: Create your first Pyrex module

step B.1

Create a working directory (e.g. D:\pyrex_module\). Write a pyrex module and save it with a pyx extension (e.g. primes.pyx, code available [http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/) here])

step B.2

Write the following python script and save it as setup.py in your working directory.

{{{from distutils.core import setup from distutils.extension import Extension from Pyrex.Distutils import build_ext setup(

  • name = "PyrexGuide", ext_modules=[

    • Extension("primes", ["primes.pyx"]) ],
    cmdclass = {'build_ext': build_ext}

)}}}

If you want to compile several modules, duplicate the line starting with Extension and replace primes by your module names.

step B.3

In your working directory, create a batch file called build_and_install.bat containing the following lines. To run the batch, double-click the file. You will see many "Warning" messages during the building process: do not worry, it is normal.

{{{C:\Python24\python.exe setup.py build_ext install pause}}}

step B.4

Mission completed. The file primes.pyd (a pyd is a Python Extension DLL) is now located in C:\Python24\Lib\site-packages and the primes module is available in Python. In your working directory, you can delete the file primes.c and the build folder created by the building process.

Test your new module at the python shell:

{{{>>> import primes >>> primes.primes(10) [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]}}}

PyrexOnWindows (last edited 2008-12-12 20:44:07 by sed192n51)

Unable to edit the page? See the FrontPage for instructions.