[Tutor] ImportError: No module named '_sysconfigdata_m'

Steven D'Aprano steve at pearwood.info
Wed Sep 25 01:44:45 CEST 2013


On Tue, Sep 24, 2013 at 06:20:37AM -0700, Albert-Jan Roskam wrote:

> > If you want to mess with your system 'sudo rm -rf' is definitely the
> > way to go. Don't bother reporting this as a bug since you've
> > *definitely* voided the warranty (that your free software didn't come
> > with).
> 
> And the 'f' (force) makes it particularly bad? I guess I learnt something the hard way today.

Yes, and no.

sudo means that you're running the command with root (Admin) privileges. 
"sudo" stands for "Super User DO" so you can guess what that means.

rm -rf deletes everything recursively, forcing deletion even if they are 
marked as unwritable, without asking for confirmation. So it's not that 
its *bad* exactly, just that it will delete everything you tell it to 
delete, whether you want it deleted or not.


> > Debian/Ubuntu and other derivatives such as Mint do not use the
> > python.org tarball as it comes out of the box. They apply a whole
> > bunch of system specific patches so that Python fits in with their
> > Debian way of doing things. This may be why you're seeing the error
> > with your un-patched CPython.
> 
> Ok, I did not know that. I am surprised that Mint uses Python 3.2 
> internally. I thought only Python 2.7 was used.  

I would be surprised too.

Normally, when you build from source, you have a pythonX.Y executable, 
and a symbolic link "python" that points to the most recently installed 
pythonX.Y executable. Than way, just typing "python" on the command line 
or in a script will get the most recent version.

That's not usually what you want, since it affects system tools as well. 
Some system tool calls "python", expecting one version, and gets a 
different version, and breakage happens.

Worse, if you reinstall the same X.Y version from source, it will 
overwrite the system version, which is likely to be patched, with an 
unpatched version.


[...]
> I just didn't want to have more versions than I actually need. Python 
> 3.3 is closer to Python 2.7 than earlier Python 3 versions. I am now 
> planning to reinstall Python 3.2 using "sudo apt-get install python3" 

My advice is:

- If your distro supports the version of Python you want, install it 
using your distro's package management tools.

- If it doesn't, or if you need special built-time options that your 
distro doesn't support, then build from source, but make sure you use 
the "altinstall" option to avoid changing the "python" symbolic link. 
You may even want to install into a directory different from the 
default, which allows you to have multiple installations of the same X.Y 
version.

-- 
Steven


More information about the Tutor mailing list