Michael Lockhart edited this page Jan 5, 2018 · 19 revisions

Setting up Nikola environment

  1. Set up Python environment for host operating system as described on the Nikola web site
  2. Clone the repository
  3. Switch to the src branch: git checkout src

You should now be able to build. A few weird things I’ve encountered and blogged about.

openSUSE Leap

The Linux instructions differ slightly for openSUSE. This is what I do to install Python3 in my hacking vagrant box.

First, install the required OS packages for Python 3 development (I believe only pattern:devel_python3 and python3-virtualenv are required for Nikola):

#Python3 development
sudo zypper install -y \
  pattern:devel_python3 \
  python3-virtualenv \

#system-wide pip3
sudo zypper install -y python3-pip
sudo pip3 install --upgrade pip

#optional documentation
sudo zypper install -y python3-virtualenv-doc

Now install XML/XSLT and zlib development packages; DBM, LXML and Pillow:

sudo zypper install -y \
  libxml2-devel  libxslt-devel  zlib-devel \
  python3-dbm    python3-lxml   python3-Pillow

(Optional, I think): Install NodeJS stuff:

sudo zypper install -y \
  nodejs  npm  perl-JavaScript-Minifier-XS

Now I can install Nikola as documented. I like to put Python VirtualEnv’s into ~/lib/, so I do this:

cd ${HOME}
mkdir -p lib/nikola
pushd lib
virtualenv nikola
source nikola/bin/activate
pip install --upgrade pip
pip install --upgrade "Nikola[extras]"

This virtualenv setup is much simpler with my python virtualenv wrapper from my dotfiles. With the mkvenv and activate functions, one can simply do this:

mkvenv nikola
activate nikola
pip install --upgrade "Nikola[extras]"

Repository Branches


This is the site served by GitHub Pages. It should not be manually edited because the whole content is replaced when deploying with github_deploy.


The source for the site. All resources necessary to generate the site should be in this branch, either under Nikola control, or in the /files/ folder to be copied in by Nikola. Experiments and new features should be branched from here and then merged back.


A bunch of off-shoots and forgotten ideas. This is a place to stash things.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.