Compile on Windows with Python Bindings

Geert Janssens geert.gnucash at kobaltwit.be
Wed Oct 12 17:08:34 EDT 2016


On Wednesday 12 October 2016 22:36:44 John Ralls wrote:
> > On Oct 12, 2016, at 10:21 PM, Adam <adam-gnucash-devel at sccode.com>
> > wrote:
> > 
> > I am compiling gnucash in Windows using MinGW  in order to include
> > the Python bindings. I have been using 2.6.14 release source code
> > from Git.
> > 
> > I have arrived at step 10 in the python-bindings sections but now
> > have 3 issues:
> > 
> > 1) I get the following error message when attempting to run gnucash
> > using 'gnucash-launcher.cmd': "The procedure entry point
> > __gmpn_cnd_add_n could not be located in dynamic link library
> > C:\GCDev\gnucash\inst\bin\libhogweed-2-5.dll"
> > 
> >   - this happens with and without python bindings installed, when
> >   not
> >   installed the program starts
> > 
> > The error does not occur when the gnucash.exe is run directly from
> > the dist directory created for the installer package.
> > 
> > 2) When python bindings are enabled, gnucash terminates with an
> > exception when the splash screen reaches 'gnucash/python'. This is
> > the best I could capture from the error logging via command line
> > switches: * 07:54:02  INFO <gnc.gui> [main] System locale returned
> > English_United Kingdom.1252
> > * 07:54:02  INFO <gnc.gui> [main] Effective locale set to
> > English_United Kingdom.1252.
> > * 07:54:03  WARN <gnc.module> Failed to dlopen()
> > 'C:\GCDev\gnucash\inst\bin\libgncmod-aqbanking.dll':
> > 'C:\GCDev\gnucash\inst\bin\libgncmod-aqbanking.dll': The specified
> > procedure could not be found.
> > * 07:54:04  INFO <gnc.engine> [gnc_hook_lookup] no hook lists
> > * 07:54:04  INFO <qof.engine> [guid_init] got 1665 bytes
> > * 07:54:04  INFO <gnc.backend.dbi> [gnc_module_init_backend_dbi] 3
> > DBD drivers found
> > * 07:54:04  INFO <gnc.backend.dbi> [gnc_module_init_backend_dbi]
> > Driver: mysql
> > * 07:54:04  INFO <gnc.backend.dbi> [gnc_module_init_backend_dbi]
> > Driver: pgsql
> > * 07:54:04  INFO <gnc.backend.dbi> [gnc_module_init_backend_dbi]
> > Driver: sqlite3
> > * 07:54:06 MESSG <gnc.module> Could not locate optional module
> > gnucash/import-export/aqbanking interface v.0
> > * 07:54:13 MESSG <gnc.module> Could not locate optional module
> > gnucash/gtkmm interface v.0
> > 
> > 3) With the following batch script  setup, I have run Python and
> > attempted to import gnucash:
> > 
> > SET PYTHONPATH=C:\GCDev\gnucash\inst\lib\site-packages
> > SET PATH=%PATH%;C:\gcdev\gnucash\inst\bin
> > SET PATH=%PATH%;C:\gcdev\gnome\bin
> > SET PATH=%PATH%;C:\gcdev\mingw\bin
> > SET PATH=%PATH%;C:\gcdev\regex\bin
> > SET PATH=%PATH%;C:\gcdev\guile\bin
> > SET PATH=%PATH%;C:\gcdev\libxslt\bin
> > SET PATH=%PATH%;C:\gcdev\libdbi\bin
> > SET PATH=%PATH%;C:\gcdev\mysql\lib
> > SET PATH=%PATH%;C:\gcdev\pgsql\bin
> > SET PATH=%PATH%;C:\gcdev\pgsql\lib
> > SET PATH=%PATH%;C:\gcdev\sqlite3\bin
> > 
> > python -v
> > 
> > This crashes python.exe with an exception and results in the
> > following output:
> > 
> > # C:\Python27\lib\encodings\cp850.pyc matches
> > C:\Python27\lib\encodings\cp850.py
> > import encodings.cp850 # precompiled from
> > C:\Python27\lib\encodings\cp850.pyc
> > import gnucash # directory
> > C:\GCDev\gnucash\inst\lib\site-packages\gnucash
> > # C:\GCDev\gnucash\inst\lib\site-packages\gnucash\__init__.pyc
> > matches C:\GCDev\gnucash\inst\lib\site-packages\gnucash\__init__.py
> > import gnucash # precompiled from
> > C:\GCDev\gnucash\inst\lib\site-packages\gnucash\__init__.pyc
> > # C:\GCDev\gnucash\inst\lib\site-packages\gnucash\gnucash_core.pyc
> > matches
> > C:\GCDev\gnucash\inst\lib\site-packages\gnucash\gnucash_core.py
> > import gnucash.gnucash_core # precompiled from
> > C:\GCDev\gnucash\inst\lib\site-packages\gnucash\gnucash_core.pyc
> > # C:\GCDev\gnucash\inst\lib\site-packages\gnucash\gnucash_core_c.pyc
> > matches
> > C:\GCDev\gnucash\inst\lib\site-packages\gnucash\gnucash_core_c.py
> > import gnucash.gnucash_core_c # precompiled from
> > C:\GCDev\gnucash\inst\lib\site-packages\gnucash\gnucash_core_c.pyc
> > import imp # builtin
> > * 21:17:31 OTHER <GLib-GIO> No GSettings schemas are installed on
> > the
> > system
> > 
> > This application has requested the Runtime to terminate it in an
> > unusual way.
> > Please contact the application's support team for more information.
> > 
> > Any thoughts on where I might be going wrong? Is trying to compile
> > with Python bindings a lost cause?
> 
> Dunno about being a lost cause, but it might be a bit of work on
> Windows. I don't think anyone has ever tried before.
> 
Wm Tarr did try a couple of years ago but never managed to get it to 
work completely. There is a thread on gnucash-devel about it which 
starts here:
http://lists.gnucash.org/pipermail/gnucash-devel/2014-May/037635.html

Perhaps Wm can write up what he did to get to a complete build at that 
time (even though it didn't run successfully).

Geert


More information about the gnucash-devel mailing list