Hi everybody,

I’m trying to learn Django using an old version (1.1.1) with python 2.7 under Linux Mint 18.
When I create a project using startproject in root user it works well, when I go back to normal user (with administrator’s privileges) I get the message
with (old_path, ‘r’, encoding=‘utf-8’) as template file :
IOError: Errno 2 No such file or directory : ‘/directory/’
I cannot find a solution…

Hi @bgfra

Welcome to Django!

Version 1.1.1 - are you sure you didn’t mean 1.11 ? 1.1.1 was released in 2010! Anyway, I’d recommend you work with the latest version (3.0.x) on Python 3. Learning with Python 2 at this point will just be doing yourself a disservice (unless there’s a specific Python 2 project you really need to work with.) The differences are just not worth learning. Here’s a guide by @wsvincent on installing Python 3:

As for your error - I think it’s related to the permissions of your installation. You should not be doing anything as the root user to get started with Django. I think you installed Django as root and now your normal user doesn’t have permissions to open the files. Create a virtualenv as your normal user and install Django within that.

Hope that helps,



Thank you Adam, I’ll follow your advice. I use an old version of Django because I found a book that teach that version (The definitive guide to Django). Even so I have problems …

Throw the book away - you’re not learning Django, you’re learning what Django was 11 years ago. Yes, there are some common concepts that would carry forward, but the features available and the development patterns have evolved greatly in that time.

As Adam points out, you’re doing yourself a great disservice by trying to learn it - it’s actually going to inhibit your learning how to work with current Django. There are also any number of more current materials that would be a lot more useful for you.

I’ve already read 150 pages :frowning_face: :frowning_face:
Ok I’ll consider it, thanks

If nothing else, there are two other (related) significant reasons -

  1. When you go on-line to forums like this or the mailing list, you may find it difficult to get an answer about a version that old. Pretty much every blog post or Stack Overflow answer you find is going to be “too new”.

  2. Unless you’ve built the documentation for that version, the official on-line documentation only goes back to v1.8

So this puts you in the position where your only resource is that book (or possibly any other old books you might find from that period).

But most of the concepts are the same isn’t it ?
Version 3 is so different that makes useless to learn previous versions ?

IMO, most of the concepts would be the same, yes. But the expression of those concepts have changed.

There are a number of evolutionary differences (e.g. “url” -> “path”) and a significant number of improvements (generic class-based views, etc), that change the implementation details of those concepts. What you don’t want to do is waste your time learning a lot of things that you’re going to need to unlearn.

You’re going to spend (have spent) “x” hours learning how to build your system. In some cases, some of the work you’ll need to do is being done because a certain feature wasn’t yet implemented. Now you go to bring yourself up-to-date - and half the battle is going to be unlearning things because they’re done differently now.

So is it “useless”? - no. I’m one of those who believe that knowledge has a value of its own, regardless of its practical applications. However, I would say it’s extremely unproductive. It’s not going to help you “learn Django”, if your objective is in any way to work / seek employment in that area. You’re not (or hopefully not) going to find any live system still using that version. When you start looking at that system, you’re going to be really confused - moreso than if you just made the transition now.


Thank you Ken, I got django 3 documentation and I’ll start rignt now to read it.