I’d known that someday I’d have to start using Python 3. In fact I’ve wanted to but never got around to it. Part of it was the Python software I’ve been using, Plone is still in Python 2 and even with the most recent release of Plone 5 it’s still not there yet. They do plan on porting it to 3, but unsure of their timetable. Django on the other hand has been Python 3 for a little while now. Although I’ve wanted to move away from WordPress I hadn’t quite found a Django based CMS (content management system) that was as fully developed as WordPress. Plone is an awesome CMS but it is overkill for most of my clients, as they are individuals or small businesses.

Anyway, Python 3 was released in 2008, so it being 2015 I think it’s time. And I believe I have found a Django based CMS that will make it possible for me to move away from not only WordPress but also Plone. Both of them are ready go out of the box. This one isn’t and some assembly is required. Nor is it an exact replacement. It’s called Wagtail. I’d looked at some other Django based CMSes (including Django CMS), and I’d settled on Mezzanine for a while, but when I migrated to a new server on a python friendly host, I ran into some difficulties in re-installing Mezzanine. I’d resolved those difficulties but using Python 2.  There is no difficulty in using Python 3 though.

I’ve been making my development process more rigorous than I had in the past. I wasn’t so rigorous with WordPress which is written in PHP.  I need to be more so with Python as my work needs to be repeatable and better documented. I don’t develop in WordPress, I just customize child themes and add plugins if need be (which I try to avoid because updates wipe out  changes). There’s so many add ons and themes available, very little programming is necessary and many host providers have one click WordPress setups now and offer managed services (which is great).

To make my Python development process more rigorous I use virtual environments. This way I’m not polluting my OSes Python. And virtualenvwrapper is so much nicer than plain old virtualenv. I hadn’t forgotten about using version control. I’ve settled on git and I may write about that in future posts.

To use Python 3 make sure it’s installed on your computer whether it be Linux, MacOS or Windows. At a command prompt just type python3 –version and hit return. If it’s there you are good to go. You can make sure pip for 3 is installed by issuing the command pip3, though it’s not necessary when using virtualenvwrapper.

It’s fairly straightforward to getting virtualenvwrapper to create a python3 project just issue the following command:

$mkproject --python=path_to_python3 project_name
(project_name)user@ubuntu:~Devel/project_name$
$which python

to verify you are indeed using Python 3. And then you can pip install your little heart out.

Note: I’m not abandoning my existing WordPress customers. It’s a good platform and I’ve been working with it for over 10 years. It has a large development community and large user base. I don’t plan to take any new clients on for it, but it doesn’t mean I won’t. Since Wagtail requires more work I’ll have to seek out different clientele for it once I’m ready. This is a transition period for me. I plan on converting a few sites, the first of which is this one. I want to do more programming and I’m more productive in Python than PHP. It’s also easier for me to maintain my code and understand it. I don’t have to do a lot of programming with WordPress.