Wie installiere ich Python 3.3?

103

Ich habe Python 3.3 von der offiziellen Seite heruntergeladen, aber keine Ahnung, wie ich es installieren soll.

Ich benutze Ubuntu 12.04

    
gonewild 18.01.2013, 08:59

8 Antworten

112

Python 3.3 wurde am 29. September 2012 veröffentlicht, einige Monate nachdem Ubuntu 12.04 veröffentlicht wurde. Es ist jedoch in Ubuntu 12.10 als python3.3 package

enthalten

Wenn Sie Python 3.3 auf einer Ubuntu-Version installieren möchten, die es nicht in seinen Repositories hat, haben Sie folgende Möglichkeiten:

Verwenden Sie eine PPA

Es gibt eine PPA mit alten und neuen Python-Versionen , die von Felix Krull gepflegt werden. Siehe Luper Rouchs Antwort für Installationsanweisungen.

Kompiliere Python aus der Quelle

Dies ist sehr einfach und ermöglicht es Ihnen, mehrere Python-Versionen zu verwenden, ohne mit dem System-Python-Interpreter (der von vielen Ubuntu-eigenen Programmen verwendet wird) zu verfahren. Auf meiner Dev-Maschine habe ich buchstäblich Dutzende von verschiedenen Python-Versionen von 2.4 bis 3.2, die glücklich in /opt leben.

Wir brauchen C-Compiler und andere Sachen, um Python zu kompilieren

sudo apt-get install build-essential

SQLite-Bibliotheken müssen installiert sein, damit Python über SQLite-Unterstützung verfügt.

sudo apt-get install libsqlite3-dev
sudo apt-get install sqlite3 # for the command-line client
sudo apt-get install bzip2 libbz2-dev

Downloaden und kompilieren Sie Python:

wget http://www.python.org/ftp/python/3.3.5/Python-3.3.5.tar.xz
tar xJf ./Python-3.3.5.tar.xz
cd ./Python-3.3.5
./configure --prefix=/opt/python3.3
make && sudo make install

Einige nette Berührungen, um einen py -Befehl durch Erstellen eines Symlinks zu installieren:

mkdir ~/bin
ln -s /opt/python3.3/bin/python3.3 ~/bin/py

Alternativ können Sie stattdessen einen Bash-Alias ​​namens py installieren:

echo 'alias py="/opt/python3.3/bin/python3.3"' >> .bashrc

Und das ist es. Jetzt können Sie jede Python-Version haben, sogar ein Alpha, oder, sagen wir mal, ein paar Kopien von Python 3.3 mit verschiedenen Einstellungen kompiliert ... nicht so viele Leute brauchen das aber:)

>

Verwenden Sie pyenv

Es gibt eine Software namens pyenv , die Ihnen dabei helfen kann, die Prozedur zu automatisieren - was im Wesentlichen Python aus der Quelle kompiliert und installiert es in Ihrem Home-Verzeichnis. Sein Ziel ist es, Ihnen bei der Verwaltung mehrerer Python-Versionen zu helfen.

    
Sergey 13.04.2017 14:25
43

Hier ist, was ich getan habe, um Python 3.3 unter Ubuntu 12.04 zu installieren:

  1. Installieren Sie Abhängigkeiten:

    sudo apt-get build-dep python3.2
    sudo apt-get install libreadline-dev libncurses5-dev libssl1.0.0 tk8.5-dev zlib1g-dev liblzma-dev
    
  2. Laden Sie Python 3.3.0 herunter:

    wget http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz
    
  3. Auszug:

    tar xvfz Python-3.3.0.tgz
    
  4. Konfigurieren und installieren:

    cd Python-3.3.0
    ./configure --prefix=/opt/python3.3
    make  
    sudo make install
    
  5. Testen Sie, ob es funktioniert hat:

    /opt/python3.3/bin/python3
    

Sie sollten etwas ähnliches sehen:

Python 3.3.0 (default, Jan 31 2013, 18:37:42) 
[GCC 4.6.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Einige zusätzliche Dinge, die nützlich sind ... Sie können eine virtuelle Umgebung in Ihrem Haus erstellen und einfach Python 3.3 bei Bedarf aktivieren.

  1. Erstellen Sie eine virtuelle Umgebung in Ihrem Heim:

    /opt/python3.3/bin/pyvenv ~/py33
    
  2. Aktiviere den virtualenv:

    source ~/py33/bin/activate
    
  3. Installieren Sie verteilte Tools:

    wget http://python-distribute.org/distribute_setup.py
    python distribute_setup.py
    
  4. Installieren Sie pip:

    easy_install pip
    
  5. Installieren Sie alle gewünschten Python-Pakete (z. B. Flasche)

    pip install bottle
    

Viel Spaß!

    
Boolean 01.02.2013 00:48
35

Der DeadSnakes-PPA enthält Pakete für alte und neue Python-Versionen:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.3
    
Luper Rouch 03.05.2013 21:52
9

Ubuntu 14.04 und früher:

Python2.7 kommt standardmäßig, Verwenden Sie den Paketmanager, um python3 auf normalem Python unter Ubuntu zu installieren, Ubuntu kann sowohl 2.7 als auch 3.2 gleichzeitig ohne einen virtualenv:

handhaben
sudo apt-get install python3
python3 --version
Python 3.2.3
python --version
Python 2.2.3

Ubuntu 18.04:

Python3 enthält standardmäßig das Betriebssystem und Python2.7 ist nicht verfügbar, es sei denn, Sie installieren es speziell.

Drei Paketnamen zur Auswahl: python , python-minimal , python-all . Der Standard ist minimal. Diese Wörter sind nur Flags für die Ubuntu-Repositories, um zusätzliche Dinge einzubeziehen oder nicht. Um genau zu sehen, welche Unterpakete enthalten sind und welche nicht, sehen Sie sich die Unterpakete von lien

an
sudo apt install python-minimal
python --version

Oder versuchen Sie, das python3 zu aktualisieren:

sudo apt install python3-minimal
python --version

Um zu versuchen, eine bestimmte Version zu erzwingen, können Sie versuchen, einen Versionsparameter zu übergeben:

sudo apt-get install python 3.3.3
    
Eric Leschinski 25.12.2013 09:06
1

Für alle, die daran interessiert sind, habe ich einen ausführlichen Artikel über Schritt für Schritt geschrieben, wie man Python 3.3.2 lokal von der Quelle auf Ubuntu 12.04 installiert, hauptsächlich basierend auf der ausgezeichneten Antwort von @ sergey: lien

    
James Nicholson 12.11.2013 08:49
1

Ich habe ein Skript geschrieben, das das Herunterladen, Kompilieren und Installieren von Python-Versionen ohne Paket automatisieren soll. Das Skript installiert die Python-Version in /opt sicher von den Paket-Manager- und System-Versionen von Python.

Es ruft sogar die Abhängigkeiten für die meisten Versionen von Ubuntu ab. Es sollte auf allen derzeit unterstützten Ubuntu-Versionen (10.04, 12.04, 12.10 und 13.04) und wahrscheinlich auch auf anderen Versionen funktionieren.

Ich füge es unten hinzu und habe es auch im meinem Github-Repository gepostet, welches der Master ist Ort.

Das Skript sollte kopiert und in einem Texteditor wie zum Beispiel build_python gespeichert und ausführbar gemacht werden ( chmod u+x build_python ) und kann dann mit zwei Parametern ausgeführt werden, wobei der erste Parameter immer der Python-Zweig sein muss , und der zweite Parameter muss immer die Python-Version sein.

Siehe python.org für die Listen der Version, die Sie kompilieren möchten.

Hier ein paar Beispiele für die Verwendung des Skripts:

  1. Bei der stabilen Version kann nach dem Überprüfen der Einträge die Ausführung als

    ausgeführt werden
    ./build_python '3.3.2' '3.3.2'
    
  2. Für die Entwicklungsversion, bei der die beiden Parameter in den Auflistungen unterschiedlich sind, kann sie wie folgt ausgeführt werden:

    ./build_python '3.4.0' '3.4.0a1'
    

Der Hauptteil des Skripts ist unten wiedergegeben (hier keine Syntax-Hervorhebung). Siehe hierzu meine Github-Seite :

#!/usr/bin/env bash

# by mik, aka Exactus29, https://github.com/Exactus29
# 
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

##########

# a script to compile the latest stable version of Python and place in /opt

(( $# == 2 )) || { printf "Please provide a version branch (e.g. 3.4.0) and a version release (e.g. 3.4.0a1) in that order.\n"
                   printf "The official site is python.org, see the ftp server at: http://python.org/ftp/python.\n" >&2 ; exit 1; }

# a splew of variables, so that just the version number can be given on the cmd line
# and then then the script can do the rest, including verifying the packages using gpg

# need different branch and version as sometimes the two are different, particularly for dev releases
py_branch=""
py_version=""
shift 2

# check if install target already exists in /opt, and exit so user can decide what to do
if [[ -d /opt/python-${py_version} ]]; then 
    printf "Target directory for the build already exists, please rename or remove.\n" >&2
    exit 1
else 
    :
fi

# use tar.bz2 as that is what most of the older releases used, i.e. in case user tries to build an older release
py_url="http://python.org/ftp/python/${py_branch}/Python-${py_version}.tar.bz2"
py_asc="http://python.org/ftp/python/${py_branch}/Python-${py_version}.tar.bz2.asc"
py_dir="$HOME/src/python_build" # checked to exist later, etc

# first check if user requested file exists on server
wget --spider ${py_url} >/dev/null 2>&1
(( $? > 0 )) && printf "No such version, version ${py_version} does not exist\n" >&2 && exit 1


# now very important before we do anything else, to check if asc file exists, as it  doesn't for some downloads
# if we don't check and it doesn't exist it causes the script to exit

wget --spider ${py_asc} >/dev/null 2>&1
# set a flag re whether asc file exists, so can check later and avoid problems
(( $? > 0 )) && no_asc=1 || no_asc=0

# set up more variables
py_tarbz2="${py_url##*/}"
(( no_asc == 0 )) && py_tarbz2_asc="${py_asc##*/}" # only set this if there is an asc file
py_folder="${py_tarbz2%.*.*}"
py_gpg_key="" 

# check other build dependencies are installed, beyond build-dep, sqlite support, readline, ncurses, build-essential 
dependencies_check() {

    local installed=()
    local to_be_installed=()
    local dependencies_list=(build-essential wget libreadline-dev libncurses5-dev libssl1.0.0 tk8.5-dev zlib1g-dev liblzma-dev
libsqlite3-dev sqlite3 bzip2 libbz2-dev)    

    for package in "${dependencies_list[@]}"; do 
        if grep -iq '^ii' < <(dpkg -l "$package"); then
            installed+=("$package")
        else 
            to_be_installed+=("$package")
        fi
    done 2>/dev/null

    if (( ${#to_be_installed[@]} > 0 )); then
        printf "If you have recently elevated your privileges with sudo, you will not see a " 
        printf "prompt here, before the apt-get update and install of packages occurs.\n" 
        sleep 2
        sudo -p "We need to install some dependencies, please enter your password: " apt-get update && sudo apt-get -y install "${to_be_installed[@]}"
        return 0
    else 
        printf "\nNothing to install, proceeding.\n"
        return 0
    fi

}

# tailor build-dep to new python version we want to build, basically either 2x or 3x versions
# should work with at least lucid/precise/quantal/raring/saucy, the currently supported versions
if (( ${py_branch:0:1} == 3 )) && grep -iq 'precise' /etc/lsb-release 2>/dev/null; then
    sudo -p "Please provide your password to install dependencies: " apt-get build-dep python3.2 && dependencies_check
elif (( ${py_branch:0:1} == 3 )) && grep -Eiq '(raring|quantal|saucy)' /etc/lsb-release 2>/dev/null; then
    sudo -p "Please provide your password to install dependencies: " apt-get build-dep python3.3 && dependencies_check
elif [[ ${py_branch:0:3} == 2.7 ]] && grep -iq 'lucid' /etc/lsb-release 2>/dev/null; then
    sudo -p "Please provide your password to install dependencies: " apt-get build-dep python2.6 && dependencies_check
elif [[ ${py_branch:0:3} == 2.7 ]]; then
    sudo -p "Please provide your password to install dependencies: " apt-get build-dep python2.7 && dependencies_check
else
    printf "\nProceeding, but make sure you have the correct build deps installed.\n\n"
    sleep 2        
fi

# dir checks
if [[ -d $HOME/src ]]; then 
    cd $HOME/src || exit 1
else
    mkdir $HOME/src && cd $HOME/src
fi

if [[ -d ${py_dir} ]]; then
    mv "${py_dir}" "${py_dir}_old_$(date '+%F_%H_%M_%S')"
    mkdir "${py_dir##*/}" && cd "${py_dir##*/}"
else
    mkdir "${py_dir##*/}" && cd "${py_dir##*/}"
fi

# finally, download python 
printf "\nNow downloading version ${py_version} from branch ${py_branch} ....."
wget "${py_url}" -P "${py_dir}" >/dev/null 2>&1
(( $? == 0 )) && printf "Done.\n"
# only download asc if it exists, set flag earlier
(( no_asc == 0 )) && wget "${py_asc}" -P "${py_dir}" >/dev/null 2>&1

# gpg tests

gpg_test() {
    # if error returned, extract gpg key from error message
    py_gpg_key="$(gpg --verify "${py_tarbz2_asc}" "${py_tarbz2}" 2>&1 | awk '{ print $NF }' | grep -v found)"

    # now check with gpg_key (should be Python release signing key)
    printf "\nReceiving keys.. "
    gpg --recv-keys "${py_gpg_key}" >/dev/null 2>&1
    (( $? > 0)) && printf "Key could not be received\n" || printf "Done.\n"

    printf "\nVerifying download... "
    gpg --verify "${py_tarbz2_asc}" "${py_tarbz2}" >/dev/null 2>&1
    (( $? > 0 )) && printf "The download could not be verified.\n" || printf "Done.\n"

}

if (( no_asc == 0 )); then
    gpg --verify "${py_tarbz2_asc}" "${py_tarbz2}" >/dev/null 2>&1
    if (( $? > 0 )); then 
        gpg_test 
    else
        printf "\nDownload verified\n\n"
    fi
else
    printf "\nProceeding even though asc file is not available for gpg to verify download\n\n"
    sleep 1
fi

# unpack and cd to the python folder
printf "Unpacking archive...."
tar xvjf "${py_folder}.tar.bz2" >/dev/null 2>&1
(( $? == 0 )) && printf "Done.\n" || { printf "Problems occured when unpacking, exiting\n" >&2; exit 1; }
cd "${py_folder}" || exit 1

# tailor the build to your machine here with configure and make

printf "\nNow for the configure (default prefix is /opt/python-${py_version})...."
sleep 2
./configure --prefix=/opt/python-${py_version} >/dev/null 2>&1
# as configure and make will exit anyway on error, no need to add || alternatives to the tests below
(( $? == 0 )) && printf "Done.\n\n"  
sleep 1

printf "\nNow for the compile. (If necessary, please add your own specifications to the make command line and run the script again)\n"
printf "\nPlease wait for the compile to finish: it may take a while...."
make >/dev/null 2>&1
(( $? == 0 )) && printf "Done.\n\n"

printf "\nWe are installing with make install into /opt, instead of using checkinstall.\n"
sudo make install >/dev/null 2>&1
installcode=$?
(( $installcode == 0 )) && printf "\n${py_version} succesfully installed in /opt/python-${py_version}\n\n"

if [[ -d $HOME/bin ]]; then
    ln -s /opt/python-${py_version}/bin/python${py_version:0:3} ~/bin/py-${py_version}
    (( $? == 0 )) && printf "\nSymlink created, run py-${py_version} in the terminal to launch the interpreter\n"
else
    mkdir $HOME/bin && ln -s /opt/python-${py_version}/bin/python${py_version:0:3} ~/bin/py-${py_version}
    (( $? == 0 )) && printf "\nSymlink created, run py-${py_version} in the terminal to launch the interpreter\n"
    printf "\nHowever, you will not be able to call py-${py_version} until you have logged out and in again, as bin will not"
    printf " have been added to your path just as $HOME/bin is created.\nn"
fi

# important info re setting up pyvenv re distribute tools and pip etc
cat <<extra_info

            See also a program called pyvenv with your installation in /opt, 
            with which you can create a virtual environment and use tools
            such as pip, etc. See the official documentation at:
            http://docs.python.org/3.3/using/scripts.html#pyvenv-creating-virtual-environments

extra_info

sleep 2 
exit ${installcode}
    
user76204 14.09.2013 12:13
1

Warnung : Pythonbrew wurde zugunsten von Pyenv veraltet. Aktualisierte Anweisungen sind hier

Sie können auch etwas wie pythonbrew verwenden:

curl -kL http://xrl.us/pythonbrewinstall | bash    
echo "[[ -s $HOME/.pythonbrew/etc/bashrc ]] && source $HOME/.pythonbrew/etc/bashrc" >> ~/.bashrc    
pythonbrew install 3.3

Es ist ziemlich einfach zu benutzen und ein weiterer Vorteil, dass es möglich ist, jede benötigte Python-Version zu installieren. In den Dokumenten finden Sie Details zum Modus

    
Alexey Savanovich 24.01.2013 07:24
0

Hier sind die Schritte, denen ich gefolgt bin:

wget http://python.org/ftp/python/3.3.2/Python-3.3.2.tar.bz2
tar -xvjf ./Python-3.3.2.tar.bz2
cd ./Python-3.3.2
./configure --prefix=/opt/python3.3
make && make install
mkdir ~/bin
ln -s /opt/python3.3/bin/python ~/bin/py
echo 'alias py="/opt/python3.3/bin/python3"' >> .bashrc
    
Tarun 03.09.2013 07:51