macosuninstallationpython-3.2

Uninstall python 3.2 on mac os x 10.6.7


According to the documentation from python.org, python 3.2 install on mac os requires an upgrade to tcl/tk 8.5.9 (for use of IDLE). In my haste, I have done both. Now my friend told me that python 3 is not recommended yet because only the built-ins and a few modules have been released for 3. The stable one so far is 2.7 (especially if one wants to make extensive use of a variety of modules). My machine has both 2.6.1 and 3.2 (because some OS services make use of 2.6.1 that comes as default with the OS).

1. How do i remove 3.2 completely to avoid any compatibility issues?

tcl/tk 8.5.9 was also installed and this is not the default. There was no verbose mode during installation, so I don't know whether it replaced the default one. If it did how bad can it be for the OS? and hence

2. If the above is really bad, how do i downgrade to the old version of tcl/tk?

In short, how do i bring my machine back to its original state? If anyone knows all the paths to the directories and files I can do it manually.

Thanks


Solution

  • Since Python installs using a package manager, you can use Suspicious Package to look at the install script and where everything is installed.

    Be aware this is for demonstration purposes only. My environment is OSX 10.6.8 and am uninstalling python-3.2.2-macosx10.6.dmg.

    # Note that lines that start with a "#" are comments and are ignored by the terminal / shell.
    # Escalate user to root, rm = remove (delete) -Rfv = Options for rm, Recursively Force verbose respectively. Three directories are given. An unescaped space separates the first and second directories. The second and third directory paths have a space or two in the path and is escaped by a backslash.
    sudo rm -Rfv \
    /Library/Frameworks/Python.framework/Versions/3.2 /Applications/Python\ 3.2 /Developer/Documentation/Python/Reference\ Documentation\ 3.2 \
    #
    # && = Execute next command if last command was successful and returned no errors, cd = Change directory, path to change path to is given.
    && cd /usr/local/bin/ \
    #
    # && = Execute next command if last command was successful and returned no errors, sudo = escalate user to root, rm = remove/delete rm options -fv = force verbose.
    && sudo rm -fv \
    2to3 \
    2to3-3.2 \
    idle3 \
    idle3.2 \
    pydoc3 \
    pydoc3.2 \
    python3 \
    python3-32 \
    python3-config \
    python3.2 \
    python3.2-32 \
    python3.2-config \
    python3.2m \
    python3.2m-config \
    pythonw3 \
    pythonw3-32 \
    pythonw3.2 \
    pythonw3.2-32
    

    In respone to @dima Tisnek and Thunderforge's comments I've edited the command to be multi-line command for easier reading and in case anyone copies and pastes this into a terminal. The \ at the end of lines lets me break up the command visually although the terminal shell sees it all as one long command, ordinarily a new line means a new command otherwise in the terminal / interactive shell environment.

    I also added comments to explain what each command does and what the options mean.