Manual Setup

A manual setup will allow you to edit the code while running the extension.

If you are aiming to debug extensions, and are running on Windows, some supplementary instructions are available at windows-manual-setup

How to Install Ink/Stich Manually

1. Clone the extension source

git clone

2. Install Pyembroidery

git clone
pip2 install -e pyembroidery/

We recommend to use pyenv to avoid the need of root privileges for pip.

3. Python Dependencies

A few python more modules are needed. In some cases this extension uses features that aren’t available in the versions of the modules pre-packaged in distributions, so we recommend installing them directly with pip:

cd inkstitch
pip2 install -r requirements.txt

Info: You might need to remove wxPython and install a platform specific package:
⚫ Debian uses python-wxgtk3.0
⚫ Ubuntu 16.04: pip install -U -f wxPython

Info: If you only have Python 2 installed you may be able to use pip instead of pip2.

4. Install Electron dependencies

The Ink/Stitch GUI uses Electron. You’ll need a working NodeJS installation of version 10 or greater. If you don’t have the yarn command, install it with npm install yarn.

Install Electron and its dependencies:

cd electron
yarn install

5. Prepare INX files

make inx

This will create *.inx files for each locale in inx/<locale>.

cd ~/.config/inkscape/extensions
ln -s /path/to/inkstitch
for i in inkstitch/inx/en_US/inkstitch_*.inx; do ln -s $i; done
ln -s inkstitch/

To use another language for Ink/Stitch menus inside Inkscape substitute en_US for another locale in inx/. Ink/Stich dialogs outside Inkscape use the OS language.

7. Run Inkscape.

Changes to the Python code take effect the next time the extension is run. Changes to the extension description files (*.inx) take effect the next time Inkscape is restarted.


ImportError: No module named shapely

If Ink/Stitch returns ImportError: No module named shapely, then it is likely the version of Python used by Inkscape and the version you installed the Python dependencies for above are different.

  • Open the file preferences.xml.
    The location can be found under Edit > Preferences > System > User extensions
  • Close Inkscape before editing the file.
    It will otherwise be overwritten when Inkscape closes.
  • Search for the term <group id="extensions" /> and update to the correct Python interpreter.

    Example: Use <group id="extensions" python-interpreter="/usr/local/bin/python2" /> where /usr/local/bin/python2 is the value returned by which python2.