Skip to content

How to install the Zim Desktop Wiki from source and its plugins in Windows with Python 2

Ed Davies edited this page Oct 13, 2022 · 1 revision

I use the next method for years, I always use the default install paths and configuration, if I do not write otherwise. Tested with Windows XP, Windows 7, Windows 8, Windows 8.1 and also on Windows 10.

  1. Install Python 2 (https://www.python.org/), during the installation check Add python.exe to PATH option, or add to python.exe to the path manually.

  2. Install PyGTKAllInOne package (http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.24/pygtk-all-in-one-2.24.2.win32-py2.7.msi). Optional modules maybe unnecessary, but I used to install it.

  3. Upgrade pip (last Python 2 have it default), so use the next command in a Terminal: python -m pip install --upgrade pip

  4. Install pypiwin32 dependencies with pip, use the next command in Terminal: pip install pypiwin32

  5. Download and extract Zim (http://zim-wiki.org/downloads/). I always extracting to C:\Program Files (x86)\Zim Desktop Wiki folder.

  6. If you need up-to-date localization, you can download it from Launchpad (https://translations.launchpad.net/zim/pyzim), it depends on how often updating localization that you use. Extract them to translation folder of Zim, and run the following command in Zim directory: python setup.py build_trans

  7. Add a new environment variable, called LANG, and set to language tag which you want to use (hu_HU for hungarian, en_GB or en_US to english, and so on...).

  8. Running zim.py from Zim directory, in my case I use next command: C:\Python27\pythonw.exe "C:\Program Files (x86)\Zim Desktop Wiki\zim.py" --standalone If it is running, you can create them to a shortcut just right-click to desktop, choose New\Shortcut and add the used command to the pop-up window. (Note: Jaap recommends using --standalone argument, but in my experience, Zim is more faster and displaying only one trayicon if I'm using multiple notebooks without --standalone. Just try it free.)

  9. If you want to use plugins you need installing following softwares, and add them to the PATH:

    a. Boxcutter - http://keepnote.org/boxcutter/ (Add to path: C:\Program Files (x86)\Boxcutter) (Insert Screenshot plugin)

    b. GNU Lilypond - http://www.lilypond.org/ (Add to path: C:\Program Files (x86)\LilyPond\usr\bin) (Insert Score plugin)

    c. GNU Plot - http://www.gnuplot.info/ (Add to path: C:\Program Files\gnuplot\bin) (Insert Gnuplot plugin)

    d. GNU R - http://www.r-project.org (Add to path: C:\Program Files\R\R-3.1.1\bin) (Insert GNU R Plot plugin)

    e. GraphViz - http://www.graphviz.org (Add to path: C:\Program Files (x86)\Graphviz2.38\bin) (Insert Diagram plugin)

    f. MikTex - http://www.miktex.org (Add to path: C:\Program Files\MiKTeX 2.9\miktex\bin) (Insert Equation plugin) (Notes: If you have problems with Equation editor, maybe you will also need the zhmetrics latex package which doesnt come default with miktex or other latex proccessors, but installable using MiKTeX Package Manager. Check this bugreport: https://bugs.launchpad.net/zim/+bug/1237909)

    g. Git - http://git-scm.com/ (Add to path: C:\Program Files\Git\bin) (Version Control plugin - optional, install only if you use)

    h. Mercurial - https://www.mercurial-scm.org/ (Add to path: C:\Program Files\Mercurial and C:\Program Files\TortoiseHG) (Version Control plugin - optional, install only if you use)

    i. Bazaar - http://bazaar.canonical.com/ (Add to path: C:\Program Files (x86)\Bazaar) (Version Control plugin - optional, install only if you use)

    j. Fossil - https://www.fossil-scm.org/index.html/doc/trunk/www/index.wiki (Extract it to C:\Program Files (x86)\Fossil folder, and add to path: C:\Program Files (x86)\Fossil) (Version Control plugin - optional, install only if you use)

  10. For Insert Sequence Diagram plugin, you need seqdiag python library, you can install it using pip: pip install seqdiag

  11. For Ditaa plugin:

    a. Download and install Java JRE (http://java.com/)

    b. Download Ditaa (http://ditaa.sourceforge.net/) and extract it to C:\Program Files (x86)\Ditaa folder

    c. Open C:\Program Files (x86)\Zim Desktop Wiki\zim\plugins\ditaaeditor.py file with a text editor (Notepad++), and replace dotcmd = ('ditaa') to dotcmd = ('java -jar "C:\\Program Files (x86)\\Ditaa\\ditaa0_9.jar"')

  12. Spellchecker plugin is a bit tricky. There is two way to install this dependency.

    a. First method: Use PyGtkSpellCheck library. To install using next command: pip install pygtkspellcheck pyenchant

    b. Second method: Use PyGTKSpell library. It need PyGTKSpell library but it compiled only for old Python versions and libenchant library which I didn't find easily. Follow this steps:

    1. Install pyenchant using pip: pip install pyenchant
    2. Download PyGTKSpell (http://gramps-project.org/wiki/images/f/ff/PyGTKSpell-2.25.3.win32-py2.6.zip) and extract it.
    3. Open the extracted PyGTKSpell-2.25.3.win32-py2.6.exe file in a text editor (I'm using Notepad++), yes it is a binary file and we will edit it.
    4. Using Search&Replace function and replacing "target_version=2.6" with "target_version=2.7" (line 918)
    5. Save the file with the following name: PyGTKSpell-2.25.3.win32-py2.7.exe
    6. Download and install Abiword (https://portableapps.com/apps/office/abiword_portable), portable version is enough, definitely we don't need Abiword, and unfortunately there are no windows builds for Abiword 3+.
    7. Copy [AbiWordPortable]\App\AbiWord\bin\libenchant.dll to C:\Python27\Lib\site-packages\enchant folder.
    8. Copy [AbiWordPortable]\App\AbiWord\lib\enchant\libenchant_ispell.dll and libenchant_myspell.dll to C:\Python27\Lib\site-packages\enchant folder
    9. Run PyGTKSpell-2.25.3.win32-py2.7.exe and install PyGTKSpell.
    10. Open C:\Python27\Lib\site-packages\gtk-2.0\gtkspell.pyd file in a text editor (Notepad++), using Search&Replace function replace "python26.dll" to "python27.dll". Save the file.
    11. Add to PATH: *C:\Python27\Lib\site-packages\enchant*

    c. Spellchecking need dictionaries, I'm using myspell dictionaries from Debian repositories but you can get other dictionaries from other sites or repos. (I'm using https://packages.debian.org/stable/myspell-hu). Extract to C:\Python27\Lib\site-packages\enchant\share\enchant\myspell folder and rename hu_HU_u8.aff to hu_HU.aff and hu_HU_u8.dic to hu_HU.dic (Of course enchant contains english dictionaries already.)

    d. Select SpellChecker plugin in Zim (it should be selectable yet), click to Configure and add the language code to the plugin.

    e. For using spellchecking during editing, click the Spellchecking button on the toolbar, or hit ''F7''.

    f. You can install both way, if system has installed PyGtkSpellCheck and PyGtkSpell, zim will prefer PyGtkSpellCheck.

  13. MacOSMenuBar and Log Events With Zeitgeist is not usable with Windows.

Maybe it is a difficult way, but it works for me, and it must be doing once, if Jaap release a new version of Zim, I replacing my Zim folder only.

Clone this wiki locally