How to build extensions on Windows?
michael.hatmaker at gmail.com
michael.hatmaker at gmail.com
Thu Sep 14 21:21:18 EDT 2006
Kevin D. Smith wrote:
> I've written a simple Python extension for UNIX, but I need to get it
> working on Windows now. I'm having some difficulties figuring out how
> to do this. I've seen web pages that say that MS Visual Studio is
> required, and other that say that's not true, that MinGW will work.
> Then there is Mike Fletcher's web page
> (http://www.vrplumber.com/programming/mstoolkit/) that describes in
> detail how to build extensions, but most of the links to external
> software are no longer valid. I think it's safe to say that I am
> completely lost, as there appears to be no authoritative, up-to-date
> description on how to make this work.
>
> --
> Kevin D. Smith
Borland released a free version of their C++ compiler and IDE on 9/4,
coinciding with my need to move my GeoTrans extension from Linux to
Windows. I didn't need the IDE for the project, since my
GeoTransMethodsSetup.py script from Linux worked fine, running it with
the command line argument "--compiler=bcpp". Add paths to the include
directories and library directories.
The biggest headache was a bunch of nonsense linker error messages,
which turned out to be because I had made the mistake of installing the
compiler under "Program Files", and setup does not behave well with
spaces in the path name. As a quick work-around, I used the DOS 8.3
filename. Next time I will install Borland in a path with no spaces in
the name. So, I was able to use a state-of-the-art compiler, rather
than work with an obsolete version of some compiler relic.
from distutils.core import setup, Extension
GeoTransMethods = Extension('GeoTransMethods',
include_dirs = ['C:\python24\include'],
library_dirs = [
r"C:\PROGRA~1\Borland\BDS\4.0\lib",
r"C:\PROGRA~1\Borland\BDS\4.0\lib\release",
r"C:\PROGRA~1\Borland\BDS\4.0\lib\obj",
r"C:\PROGRA~1\Borland\BDS\4.0\lib\PSDK",
r"C:\PROGRA~1\Borland\BDS\4.0\lib\Indy9"],
sources = ["GeoTransMethods.c", "mgrs.c", "utm.c", "ups.c",
"tranmerc.c", "polarst.c"])
setup(name="GeoTransMethods", version="1.0",
ext_modules=[GeoTransMethods])
More information about the Python-list
mailing list