Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

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 am having trouble installing python-dev. It all started when I tried to install another Python package and got the error:

SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev.

I tried sudo apt-get install python-dev but got the error:

The following packages have unmet dependencies:
 python-dev : Depends: python2.7-dev (>= 2.7.3) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

So then I tried sudo apt-get install python2.7-dev and got the error:

The following packages have unmet dependencies:
 python2.7-dev : Depends: python2.7 (= 2.7.3-0ubuntu3) but 2.7.3-0ubuntu3.1 is to be installed
                 Depends: libpython2.7 (= 2.7.3-0ubuntu3) but 2.7.3-0ubuntu3.1 is to be installed

I have tried most everything in the post unmet dependencies. I am running Ubuntu 12.04 and I have everything updated. I have done apt-get clean and apt-get autoclean. I have tried apt-get -f install and all variations on that theme. I have cleaned up my PPA. I even tried using Aptitude, and though it did a lot of clean up, the result was the same.

I really want to be able to install python-dev. How can I make this happen? At this point, I am willing to consider extreme options, whatever they may be.

share|improve this question
The problem isn't installing python-dev. The problem is getting src and include folders propogated to your virtualenv. – RobotHumans Mar 29 '13 at 18:28
Do you have any suggestions there? I was using --system-site-packages. – theJollySin Mar 29 '13 at 18:38
Read this:… it explains how it actually works. – RobotHumans Mar 29 '13 at 18:42
@CallmeV This is a great post, but sadly doesn't address the problem I'm having getting Python-Dev to install. – theJollySin Jun 15 '13 at 16:52
@theJollySin - what version of ubuntu are you using? Please disable all PPAs and run sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade. Paste the output to – fossfreedom Jun 16 '13 at 9:49
up vote 14 down vote accepted

This bit:

 python2.7-dev : Depends: python2.7 (= 2.7.3-0ubuntu3) but 2.7.3-0ubuntu3.1 is to be installed

suggests that you are using some mismatched repositories, or have some apt-pins in place keeping the version dependencies from lining up. I think, specifically, python-2.7 2.7.3-0ubuntu3.1 is in the Precise-proposed repository and the 2.7.3-0ubuntu3 version is in Precise/main proper, so you may be preferring -proposed for some but not all packages.

Can you edit your question to include the output of:

apt-cache policy python2.7-dev
apt-cache policy python2.7

and maybe:

apt-cache show python2.7


Reading the apt-cache output from your pastebin, it looks like you have the python2.7 2.7.3-0ubuntu3.1 from precise-updates/main installed, but python2.7-dev is from precise/main. I think your install media or an earlier "apt-get update" included the precise-updates repository, but it's not in your current sources.list.

I think you'll be able to get the install going after adding precise-updates and then apt-get update.

echo "deb precise-updates main restricted" | sudo tee -a /etc/apt/sources.list.d/precise-updates.list
sudo apt-get update
sudo apt-get install python2.7-dev
share|improve this answer
I pasted the response to apt-cache policy python2.7 and the like here: – theJollySin Jun 18 '13 at 3:21

You shouldn't install numpy with pip, use the package Ubuntu provides:

dennis@koekblik:~$ apt-cache show python-numpy
Package: python-numpy
Priority: optional
Section: python
Installed-Size: 7616

As to your actual problem: try installing python2.7-dev. It will likely fail but should give you a better error message.

share|improve this answer
Okay, your first statement: there are other packages (like gdal) that would be much easier if I could install through PIP. Your second point, I can try that and see what happens. Thanks. – theJollySin Mar 29 '13 at 17:52
I agree that pip is a useful tool, but please stick to Ubuntu packages as much as possible, much easier for updating. And if you use pip to install packages, you might want to create yourself a virtualenv so you don't need to install as root into /usr/local. – Dennis Kaarsemaker Mar 29 '13 at 17:56
Okay, I will try to stick to Ubuntu packages. But this whole problem started because I can get numpy working fine, but can't get numpy imported inside a virtualenv. Having a working virtualenv system for Python development is definitely the goal. Thanks again. – theJollySin Mar 29 '13 at 18:00
That's a different question though :) Use a virtualenv with --system-site-packages to get access to what's installed via apt. – Dennis Kaarsemaker Mar 29 '13 at 18:01

fastest solution: Install (apt-get install synaptic) Synaptic Package Manager, start it, click on Settings-Repositories, select "Download from: Main Server", click Close, click on Reload. Then mark python-dev for installation and Synaptic will also mark all stuffs need to be installed for python-dev (libexpat1-dev, libssl-dev, libssl-doc, python2.7-dev, zlib1g-dev). I have just resolved the same problem on freshly installed Ubuntu x86 12.04.3.

share|improve this answer

This post is more than 2 years old at time of writing this post but has a high search rank when searching for:

The following packages have unmet dependencies: python-dev

For those that encounter this problem, first try and run

sudo apt-get update

and try to install again

share|improve this answer
It is not necessary to give such introduction. Just give your answer. As per my experience, not always unmet dependency can be solved by using sudo apt-get update – Mostafa Ahangarha Mar 19 at 10:38

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.