Install Python 3.7.1 on OpenSUSE Tumbleweed

After another hour of resolving issues with pyenv and a personal project that requires Python 3.7 I thought it best to note the steps I used to install Python 3.7.1 on OpenSUSE Tumbleweed:

# Install requirements for compiling Python
sudo zypper in zlib-devel bzip2 libbz2-devel libffi-devel libopenssl-devel readline-devel sqlite3 sqlite3-devel xz xz-devel 

# Compile Python
cd ~/Downloads
tar xf Python-3.7.1.tar.xz
cd Python-3.7.1

# AltInstall ensures 3.7.1 is installed alongside your system python
sudo make altinstall

# Fix dynamic library loading
sudo ln -s /usr/local/lib64/python3.7/lib-dynload /usr/local/lib/python3.7/lib-dynload

I’ve updated the Common build problems · pyenv/pyenv Wiki page to reflect the updated required packages. Thanks to Andrew Cooke for the dynamic library fix

December 11, 2018 at 1:39 PM in Python

Transitioning to Gutenberg

The WordPress Project says:

The Classic Editor plugin will be officially supported until December 31, 2021.


Since the Classic Editor plugin is central in this transition, we are considering including it with upgrades to WordPress 5.0.

In the context of my professional work with WordPress it would be beneficial to see the Classic Editor plugin be included by default into the installation package. This would signal to plugin and theme developers that we are in a transition phase but supporting the existing installations, until Gutenberg is more fully accepted by the wider community. Not doing do could put pressure on smaller developers to just test their updates for Gutenberg only, resulting in a lot of broken sites or a security nightmare where people won’t be able to update to the latet versions of WordPress or their plugins until the teams and processes are ready.

November 8, 2018 at 9:31 AM in WordPress

How to install pip and pipenv properly on Ubuntu 17.10

Ubuntu 17.10 comes with python3 3.6.3 installed by default but not pip and pipenv. We can install install pip systemwide and pipenv into the user local bin so we can use all the convenience when working with our python projects:

wget -O /tmp/
sudo python3 /tmp/
pip3 install --user pipenv
echo "PATH=$HOME/.local/bin:$PATH" >> ~/.profile
source ~/.profile

Sources: Installing Python 3 on Linux; pip installation; Installing pipenv; How to permanently set PATH on Linux

Update 9 Nov 2017: replaced curl with wget, thanks Peter

October 20, 2017 at 4:31 PM in Python, Technology

Generating Atom feeds from your Lektor site

After quickstarting a Lektor site, a next obvious thing to do is to add a feed to the site’s blog. Fortunately, Lektor has a growing ecosystem of plugins, one of them creates atom feeds.

Installation of lektor-atom

The plugin to install is lektor-atom, and is installed via the terminal:

lektor plugin add lektor-atom@0.2
lektor build

This adds a reference to the myproject.lektorproject file with the plugin and installs the plugin into the lektor pipeline.

Configure a feed

However, notice that after building the site no feed is generated! This is because no feeds have been setup yet.

Create a configs/atom.ini containing the following lines (full documentation)

name = My Blog feed
source_path = /blog
item_model = blog-post
url_path = /blog/feed.xml

Change the url_path to suit your preferences. Trying to build now would result in an error: E blog/feed.xml (RuntimeError: To use absolute URLs you need to configure the URL in the project config.)

To resolve the build process myproject.lektorproject must be updated with two lines within the project section to indicate the site’s live URL and an absolute URL style:

name = My Project
url =

lektor-atom = 0.2

The site can then build and the resulting feed can be accesssed from

February 17, 2017 at 10:23 AM in Development, Lektor