flupke / pypotrace

Python bindings for potrace library
Other
165 stars 43 forks source link

Building on Windows #4

Closed klonuo closed 11 years ago

klonuo commented 11 years ago

Here are instruction how to make this package work on Windows, by using MinGW system. Probably it can be done with Visual Studio, but I lack skills to make such magic.

So assuming user has MinGW available, additional two packages are needed:

  1. potrace source: http://potrace.sourceforge.net/#downloading
  2. agg source: http://www.antigrain.com/download/index.html

I extracted both packages in my C:\src folder. Both are easy to build by executing ./configure; make and ./autogen.sh; make respectively, on MSYS prompt.

After that, we need some variables to build pypotrace successfully:

First, includes paths:

there is a little catch for agg includes, as paths referenced in cpp sources point to agg2/*.h while in downloaded agg package we don't have agg2 folder. For me it was easiest to rename C:/src/agg-2.5/include to C:/src/agg-2.5/agg2 and use C:/src/agg-2.5 as agg include folder.

Next, libdirs for libraries we build above:

and we can make pypotrace build command, and execute it:

python setup.py build_ext -IC:/Python27/Lib/site-packages/numpy/core/include;C:/src/potrace-1.11/src;C:/src/agg-2.5 -LC:/src/potrace-1.11/src/.libs;C:/src/agg-2.5/src

Finally install the package:

C:\src\git\pypotrace>python setup.py install
running install
running build
running build_py
copying potrace\__init__.py -> build\lib.win32-2.7\potrace
copying potrace\agg\__init__.py -> build\lib.win32-2.7\potrace\agg
running build_ext
skipping 'potrace\_potrace.c' Cython extension (up-to-date)
skipping 'potrace\bezier.cpp' Cython extension (up-to-date)
skipping 'potrace/agg\curves.cpp' Cython extension (up-to-date)
running install_lib
creating C:\Python27\Lib\site-packages\potrace
creating C:\Python27\Lib\site-packages\potrace\agg
copying build\lib.win32-2.7\potrace\agg\curves.pyd -> C:\Python27\Lib\site-packages\potrace\agg
copying build\lib.win32-2.7\potrace\agg\__init__.py -> C:\Python27\Lib\site-packages\potrace\agg
copying build\lib.win32-2.7\potrace\bezier.pyd -> C:\Python27\Lib\site-packages\potrace
copying build\lib.win32-2.7\potrace\_potrace.pyd -> C:\Python27\Lib\site-packages\potrace
copying build\lib.win32-2.7\potrace\__init__.py -> C:\Python27\Lib\site-packages\potrace
byte-compiling C:\Python27\Lib\site-packages\potrace\agg\__init__.py to __init__.pyc
byte-compiling C:\Python27\Lib\site-packages\potrace\__init__.py to __init__.pyc
running install_egg_info
Writing C:\Python27\Lib\site-packages\pypotrace-0.1-py2.7.egg-info

Thanks :)

flupke commented 11 years ago

Included your instructions in the README, thanks !