Run Gramps40 for Windows from source using Python 2.7.3

From Gramps
Revision as of 14:07, 27 February 2013 by Helge GRAMPS (Talk | contribs) (Gtk, pyobject)

Jump to: navigation, search


This page gives information how to run Gramps 4.0.x from source on a Windows system. After some trials there was the result to focus on 32 bit Python 2.7.3 because of several issues related to Gtk and database connection. All steps were done by the author on Windows 7 64bit German.

There are some parts marked as "TODO ISSUE" because of known issues.

There are some parts marked as "TODO WORK" because it's not done yet done (work in progress).

This is a work in progress...
Nobody guarantees anything at all!
Any comments and help (e.g. on wiki pages) are welcome.

With revision 21429 there new dependencies!
The description has to be reworked - TODO WORK


Requirements from README:

  • Python 2.7 or greater, Python 3.2 or greater (python version cannot be mixed)

We use: Python 2.7.3 32 bit from for all examples assumed to be installed into "C:\Python27".

Comment: For Win7 user it's easier to don't use "C:\Program Files (x86)\..." because for every change somewhere in this folder one has to activate the administrator's rights again and again.

Gtk, pyobject

Requirements from README:

  • GTK 3.0 or greater
  • pygobject 3.3.2 or greater
  • cairo, pango, pangocairo with instrospection bindings (the gi packages)
  • librsvg2 (svg icon view)
  • xdg-utils

Currently there are no official binaries available. With the help of an open source programmer we got this package (here again the authors personally thank for his good job supporting Gramps in this way - see there to know more about of his other work:

  • 27.02.2013, 24.02.2013: pygi-aio-3.4.2rev7.7z from
    • content of pygi-aio-3.4.2rev7.7z\py27\ to be copied into "C:\Python27\Lib\site-packages"
    • content of pygi-aio-3.4.2rev7.7z\gtk\ to be copied into "C:\Python27\Lib\site-packages\gtk"
  • 23.02.2013(Deprecated): pygi-aio-3.4.2rev6.7z from
    • content of pygi-aio-3.4.2rev6.7z\py27\ to be copied into "C:\Python27\Lib\site-packages"
    • content of pygi-aio-3.4.2rev6.7z\gtk\ to be copied into "C:\Python27\Lib\site-packages\gtk"
    • To prevent issue 6429 download Gtk-3.0.typelib from the issue page and overwrite the same file in "C:\Python27\Lib\site-packages\gtk\lib\girepository-1.0" (TODO WORK: to be removed if the new typelib is part of the package)
  • Deprecated versions before 23.02.2013 see history

Comment: For all examples it's assumed that the included Gtk binaries will be stored into "C:\Python27\Lib\site-packages\gtk" and it's also strongly assumed that this value will be added to the windows environment variable PATH!

Checking the state of the package can be done by:

  • start Python (e. g.: C:\Python27>python)
  • and than call the functions as follows. There should be the same results.
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win 32
Type "help", "copyright", "credits" or "license" for more information.
>>> from gi.repository import GObject
>>> Gtk.get_major_version()
>>> Gtk.get_minor_version()
>>> Gtk.get_micro_version()
>>> from gi.repository import GObject
>>> GObject.pygobject_version
(3, 4, 2)



  • Translation of GTK elements to your language, with xx your language code eg for Dutch you need language-pack-gnome-nl. The translation of the Gramps strings is included with the source code.

The necessary package related to our GTK package will be provided also by the programmer of the GTK package (see above). It's to find in an other distribution package because of the limits of the used repository:

Copy the folder "pygi-aio-3.4.2rev?-opt.7z\gtk\share\locale" into the related Gtk folder "..\site-packages\gtk\share\locale". For our example this would be: "C:\Python27\Lib\site-packages\gtk\share\locale".



TODO WORK: Add this package. But where to get? The link above doesn't help currently to get a complete package for this environment.

Comment: There is currently no message during the start-up of Gramps about a missing osmgpsmap. The only thing is the missing Geographic view in Gramps.



  • Enable creation of graphs using GraphViz engine.
  • Without this no beautiful graphs can be created.
  • Obtain it from:

Following the information on we get the current installation graphviz-2.30.msi from and run it.

For the examples we used the default installation path "C:\Program Files (x86)\Graphviz2.30\" and the installation for 'everyone'.

To give Gramps the access to this software we have to add the directory of the related binaries to the PATH environment variable. But to prevent trouble with the used dll versions between GraphViz and Gramps it's strongly recommended to add this at the end of PATH

SET PATH=%PATH%;C:\Program Files (x86)\Graphviz2.30\bin

GraphViz will be used e. g. for any report in Reports --> Graphs. Without GraphViz there is only one output format "Graphvi File". If all is OK there are several output formats available (e. g. "PDF (Graphviz)", "JPEG image" etc.).


24.02.2013: Will not be used any more, replaced by GExiv2
24.02.2013 (Deprecated): Requirements from README (*STRONGLY RECOMMENDED*):

From the web page as defined above we get for Python 2.7 pyexiv2-0.3.2-setup.exe and run it. During the running setup we choose a system wide installation into C:\Python27\Lib\site-packages. That's all in this case.

The package will be used by the 'Image Metadata' Gramplet.

The package will be replaced in the near future by gexiv2.


Requirements from README (optional package):

  • Enable spell checking in the notes.
  • Gtkspell depends on enchant.
  • A version of gtkspell with gobject introspection is needed, so minimally version 3.0.0.

The basics to use a spell are already included in the here used GTK3 package. The only missed things are myspell dictionaries. These can be found:

  • from download the language packages of your choice. In some cases (e.g. for German) it's more difficult because one has to download a " 3.x Extensions" package. For German one will get via the file dict-de_DE-frami_2012-06-17.oxt. Using a program like 7-Zip one will find the necessary files (de_DE_frami.aff and de_DE_frami.dic) in "dict-de_DE-frami_2012-06-17.oxt\de_DE_frami\".
  • from e.g. the GrampsAOI3.4.2 package in "..\GrampsAIO32_3.4.2\share\enchant\myspell"

For our example all files *.aff *.dic have to be stored into "C:\Python27\Lib\site-packages\gtk\share\enchant\myspell".

TODO ISSUE/WORK There are still some issues using spell:

  • Open the note editor having spell activated slows down the os extremely as longer as larger the text.
  • The spell settings will not be stored.


Requirements from README (optional package):

--> will not be used
There is still the same issue as in Gramps 3.0.1 and later 3124. 
Currently there is no special code like 'if win(): DON'T USE RCS'.
It seems to be working but the reload from an archived database doesn't run.
Finally it doesn't matter to install rcs.
Additional comment: 
It seems to be better in general to use the Gramps function "Make Backup..."
than to archive a bsddb database what means in detail also more an backup
than an archive. It could be a good idea to handle such backups in the db
open window like archives using rcs. (TODO WORK: add an feature request)


Requirements from README (optional package):

  • Python Image Library is needed to convert non jpg images to jpg so as to include them in LaTeX output

From download PIL-1.1.7.win32-py2.7.exe. Run this installation to add PIL to the used Python version.

further Python packages

TODO WORK: Add the missing packages having a usable version. Because of time all packages not list above are not tried up today. It will be the job of the next time to go ahead to add all these packages.

Requirements from README:

The following packages are optional

  ttf-freefont     More font support in the reports
  gir-webkit       GObject introspection data of WebKit is required for the
                   hidden view 'Htmlview', which allows websites to be opened in
                   Gramps. Users can unhide the view in the plugin manager. 
                   A html renderer must be installed to use the view.
                   !! PACKAGERS, Test if on your distribution
                   webkit and Gramps is stable. If you obtain crashes, patch 
                   src/plugins/view/ and
                   src/plugins/view/, so as to remove:
                      from gi.repository import WebKit as webkit
                   Required for the Graphview plugin

Debug Environment


TODO WORK: description


TODO WORK: description

Start Gramps 4.0

Get Gramps sources

For all examples it's assumed that the Gramps source (e.g. from the repository will be stored into "C:\Gramps4.0".

It's helpful to use a Subversion client for Windows to get these sources. Also if one gets sources only such a tool provides the possibility of history search and or compare and also to mark differences between the current version on the computer and the repository.

There are good experiences using TortoiseSVN from

Prepare Setup

To run we need the translation tools from Download gettext-0.14.4.exe and run it to install.

For all examples assumed to be installed to: "C:\Program Files (x86)\GnuWin32\bin" (The default path of the installer)

Run Setup Build

Running " build" generates necessary translation files (*.mo) and the from

Here is an example batch file to run this:

cd C:\Gramps4.0
set path=C:\Python27;C:\Program Files (x86)\GnuWin32\bin;%path%
C:\Python27\python build

The result should look like this:

running build
Compiling po\bg.po >> share/locale/bg/LC_MESSAGES.
Compiling po\ca.po >> share/locale/ca/LC_MESSAGES.
Compiling po\cs.po >> share/locale/cs/LC_MESSAGES.
Compiling po\da.po >> share/locale/da/LC_MESSAGES.
Compiling po\de.po >> share/locale/de/LC_MESSAGES.
Compiling po\el.po >> share/locale/el/LC_MESSAGES.
Compiling po\en_GB.po >> share/locale/en_GB/LC_MESSAGES.
Compiling po\es.po >> share/locale/es/LC_MESSAGES.
Compiling po\fi.po >> share/locale/fi/LC_MESSAGES.
Compiling po\fr.po >> share/locale/fr/LC_MESSAGES.
Compiling po\he.po >> share/locale/he/LC_MESSAGES.
Compiling po\hr.po >> share/locale/hr/LC_MESSAGES.
Compiling po\hu.po >> share/locale/hu/LC_MESSAGES.
Compiling po\it.po >> share/locale/it/LC_MESSAGES.
Compiling po\ja.po >> share/locale/ja/LC_MESSAGES.
Compiling po\lt.po >> share/locale/lt/LC_MESSAGES.
Compiling po\nb.po >> share/locale/nb/LC_MESSAGES.
Compiling po\nl.po >> share/locale/nl/LC_MESSAGES.
Compiling po\nn.po >> share/locale/nn/LC_MESSAGES.
Compiling po\pl.po >> share/locale/pl/LC_MESSAGES.
Compiling po\pt_BR.po >> share/locale/pt_BR/LC_MESSAGES.
Compiling po\pt_PT.po >> share/locale/pt_PT/LC_MESSAGES.
Compiling po\ru.po >> share/locale/ru/LC_MESSAGES.
Compiling po\sk.po >> share/locale/sk/LC_MESSAGES.
Compiling po\sl.po >> share/locale/sl/LC_MESSAGES.
Compiling po\sq.po >> share/locale/sq/LC_MESSAGES.
Compiling po\sv.po >> share/locale/sv/LC_MESSAGES.
Compiling po\uk.po >> share/locale/uk/LC_MESSAGES.
Compiling po\vi.po >> share/locale/vi/LC_MESSAGES.
Compiling po\zh_CN.po >> share/locale/zh_CN/LC_MESSAGES.
running build_py
copying gramps\gen\ -> build\lib\gramps\gen
running build_scripts
Hit any key . . .


  • After running this it would be possible to run Gramps from "C:\Gramps4.0" or from some where "C:\Gramps4.0\build\...".
  • For easy handling of sources from the repository the author prefers to run it from "C:\Gramps4.0".
  • It's also possible to generate .mo files by command line jobs. (TODO WORK: description)
  • It's also possible to manipulate manually. (TODO WORK: description)

Work arounds

TODO ISSUE: Each work around to be removed if not necessary any more

  • Currently there is an issue between and that's why we need manually changes in ""C:\Gramps4.0\gramps\gen\, line 203 to 206: In all string paths for LOCALE_DIR , DATA_DIR, IMAGE_DIR, DOC_DIR replace '\' by '\\'
  • 23.02.2013, 16.02.2013 (Deprecated): see also above how to install the Gtk package. As described in issue 6429 [1] there is a work around to have the drop down menu for gramplets in the side and bottom bar working: new "Gdk-3.0.typelib" from this issue page (TODO ISSUE: to be removed if the new typelib is part of the package)

Overall appearance

A short description 'How to control the general view of Gramps using GTK themes':

  • For our example theme packages have to be stored in "C:\Python27\Lib\site-packages\gtk\share\themes". Per default with the here used GTK package there are three packages available:
    • Adwaita
    • Default
    • Emacs

To select one of these themes one has to manipulate the a special settings.ini file. For our example it's placed there:

  • C:\Python27\Lib\site-packages\gtk\etc\gtk-3.0\settings.ini
  • This example for settings.ini defines the theme "Adwaita" and the font "Segoe UI" having the font size 10:
gtk-theme-name = Adwaita
gtk-font-name = Segoe UI 10

More information and links regarding GTK3 themes may be found in the web (e.g.

Start Gramps

At this point we have a basically running Gramps.

Because we didn't add all packages suggested by the README we didn't have the full functionality. Especially some output formats and the geographic view are not available yet (TODO WORK: Add the missing packages having a usable version.)

Because Gramps 4.0 is still under development there are still several issues and crashes (see bug tracker: It's strongly recommended to use test data for validation only!

To run Gramps a batch seems to be helpful:

set LANG=en_GB

@rem may be some time we need an other language
@rem set LANG=de

@rem it's a good idea to have a own GRAMPSHOME
set GRAMPSHOME=C:\Gramps_test\Gramps40
@rem we need the path of the Gtk binaries
set path=C:\Python27\lib\site-packages\gtk;%path%;C:\Program Files (x86)\Graphviz2.30\bin

@rem let's jump to Python binaries
cd C:\Python27

@rem call for all version information (e.g. as background for any issue)
python "C:\Gramps4.0\" -v

@rem let's start Gramps
python "C:\Gramps4.0\"

"Gramps -v" should show this information now:

Gramps Settings:
 python    : 2.7.3
 gramps    : 4.0.0-alpha4-r21362M
 gtk++     : 3.6.4
 pygobject : 3.4.2
 pango     : 1.32.6
 Not using bsddb3
 bsddb     :
 bsddb.db  : 4.7.25
 cairo     : 1.12.10
 pycairo   : 1.10.0
 osmgpsmap : not found
 pyexiv2   : 0.3.2
 o.s.      : win32

Environment settings:
 LANG      : en_GB
 GRAMPSI18N: not set
 GRAMPSHOME: C:\Gramps_test\Gramps40
 GRAMPSDIR : not set

Non-python dependencies:
 Graphviz  : 2.30
 Ghostscr. : Ghostscript not in system PATH

System PATH env variable:

See also