Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I downloaded and installed it (thanks mostly to these guys in the how-to section: How to install Python 3.3?) and the learning guide that I am using explains that placing the installation in the downloads folder might not be the best idea for windows users. Is this the case for me using ubuntu? If so, can I simply copy and paste it elsewhere? Where might be a good place? Thanks!

share|improve this question

If you're on 12.10, you can (and should, unless you have any special requirements) simply install Python 3.3 from the repositories. This way it will be updated as part of the rest of your installation, and it will be easier to install supporting libraries.

sudo apt-get install python3.3

If you do want to compile and install it yourself, you would usually put the resulting binary in either /usr/bin or /usr/local/bin. For things I compile myself, I normally choose the latter.

Now, source like python comes with its own directory structure: bin, include, lib, src, etc. You can see this under the Python-3.3.0 directory.

If you poke around your /usr filesystem, you'll see a similar structure - /usr/bin, /usr/src, /usr/include, /usr/lib, etc. Software which is installed from the repositories is slotted into this /usr file structure, with the relevant files being placed in the appropriate places.

If you're compiling Python from source, you'll have a Python directory with all these different kinds of files contained within it. If you try to divide it up yourself into the structure under /usr, you're going to end up in a real mess, and it'll be devilishly hard to remove it all afterwards.

So the way this is usually done is to place the whole directory under /opt. You can compile it there, and then you can either copy the resultant binaries into /usr/bin or /usr/local/bin, or you can make symlinks to them.

The instructions you're following show you how to compile python under /opt and create a symlink to the primary python binary in /usr/bin. This is a perfectly acceptable convention to follow.

I should also add: I'm talking about conventions here. Conventions don't always need to be followed rigidly. But for first steps, these conventions are a good way to start. You can (and will, no doubt) develop your own "style" as you progress.

To learn more about the filesystem structure (this really does come in handy), have a quick look at Ubuntu's nice and succinct Filesystem Tree Overview.

share|improve this answer
I did mean to post a link to the FSSTND - but your link is rather more succinct, digestible, and up-to-date! – IlluminAce Mar 18 '13 at 21:09

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.