Ich habe Python 3.3 von der offiziellen Website heruntergeladen, aber keine Ahnung, wie ich es installieren soll.
Ich benutze Ubuntu 12.04
Ich habe Python 3.3 von der offiziellen Website heruntergeladen, aber keine Ahnung, wie ich es installieren soll.
Ich benutze Ubuntu 12.04
Antworten:
Python 3.3 wurde am 29. September 2012 veröffentlicht, einige Monate nach der Veröffentlichung von Ubuntu 12.04. Es ist in Ubuntu 12.10 als python3.3
Paket enthalten
Wenn Sie Python 3.3 auf einer Ubuntu-Version installieren möchten, die es nicht in ihren Repositorys enthält, 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 Rouch Antwort für Installationsanweisungen.
Kompilieren Sie Python aus dem Quellcode
Dies ist sehr einfach und ermöglicht es Ihnen, mehrere Python-Versionen zu verwenden, ohne sich mit dem System-Python-Interpreter (der von vielen Ubuntu-eigenen Programmen verwendet wird) herumzuschlagen. Auf meinem Dev-Rechner habe ich buchstäblich Dutzende verschiedener Python-Versionen von 2.4 bis 3.2, in denen ich glücklich bin /opt
.
Wir brauchen C-Compiler und andere Dinge, um Python zu kompilieren
sudo apt-get install build-essential
SQLite-Bibliotheken müssen installiert sein, damit Python SQLite-Unterstützung bietet.
sudo apt-get install libsqlite3-dev
sudo apt-get install sqlite3 # for the command-line client
sudo apt-get install bzip2 libbz2-dev
Python herunterladen und kompilieren:
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 Details zum Installieren eines py
Befehls durch Erstellen eines Symlinks:
mkdir ~/bin
ln -s /opt/python3.3/bin/python3.3 ~/bin/py
Alternativ können Sie py
stattdessen einen Bash-Alias namens installieren :
echo 'alias py="/opt/python3.3/bin/python3.3"' >> .bashrc
Und das ist es. Jetzt können Sie jede Python-Version haben, sogar eine Alpha-Version, oder zum Beispiel ein paar Kopien von Python 3.3, die mit verschiedenen Einstellungen kompiliert wurden ... das brauchen aber nicht viele Leute :)
Verwenden Sie pyenv
Es gibt eine Software namens pyenv, die Ihnen dabei helfen kann, den Vorgang zu automatisieren. Im Wesentlichen kompiliert sie Python aus dem Quellcode und installiert es in Ihrem Home-Verzeichnis. Ziel ist es, Sie bei der Verwaltung mehrerer Python-Versionen zu unterstützen.
.py
Dateien mit der #!/usr/bin/env python
Shebang-Zeile (ausführbares Bit gesetzt). Wie würde ich sie dazu bringen, diese Installation zu verwenden, /opt/python3.3
ohne alle zu ändern? Oder sogar vom System installierte.
py myscript.py
(wo py
befindet sich ein Symlink, den wir am Ende der Übung erstellt haben). Normalerweise verwende ich auch virtualenv oder buildout für meine Projekte.
Folgendes habe ich getan, um Python 3.3 unter Ubuntu 12.04 zu installieren:
Abhängigkeiten installieren:
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
Laden Sie Python 3.3.0 herunter:
wget http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz
Extrakt:
tar xvfz Python-3.3.0.tgz
Konfigurieren und installieren Sie:
cd Python-3.3.0
./configure --prefix=/opt/python3.3
make
sudo make install
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 nützliche Dinge ... Sie können eine virtuelle Umgebung in Ihrem Zuhause erstellen und Python 3.3 bei Bedarf aktivieren.
Erstellen Sie eine virtuelle Umgebung in Ihrem Zuhause:
/opt/python3.3/bin/pyvenv ~/py33
Aktivieren Sie die virtuelle Umgebung:
source ~/py33/bin/activate
Installieren Sie die Verteilungstools:
wget http://python-distribute.org/distribute_setup.py
python distribute_setup.py
Pip installieren:
easy_install pip
Installieren Sie alle gewünschten Python-Pakete (zB Flasche)
pip install bottle
Genießen!
sudo apt-get build-dep python3.2
? Sie haben wahrscheinlich install
zwischen :) vergessen
build-dep
ist kein Paket, es ist ein apt-get
Verb (wie install
). Es bedeutet " Installiere alle Pakete, die notwendig sind, um das / die angeforderte (n)
Die Deadsnakes PPA hat 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
Ubuntu 14.04 und früher:
Python2.7 wird standardmäßig mitgeliefert. Verwenden Sie den Paket-Manager, um Python3 auf regulärem Python unter Ubuntu zu installieren. Ubuntu kann sowohl 2.7 als auch 3.2 gleichzeitig ohne ein virtuelles Env verarbeiten:
sudo apt-get install python3
python3 --version
Python 3.2.3
python --version
Python 2.2.3
Ubuntu 18.04:
Python3 wird standardmäßig mit dem Betriebssystem geliefert und Python2.7 ist nur verfügbar, wenn Sie es speziell installieren.
Drei Paketnamen zur Auswahl: python
, python-minimal
, python-all
. Die Standardeinstellung ist minimal. Diese Wörter sind nur Flags für die Ubuntu-Repositories, um zusätzliches Material einzuschließen oder nicht. Um genau zu sehen, welche Unterpakete enthalten sind und welche nicht, durchsuchen Sie die Unterpakete unter: https://packages.ubuntu.com/bionic/python
sudo apt install python-minimal
python --version
Oder versuchen Sie, das python3 zu aktualisieren:
sudo apt install python3-minimal
python --version
Um eine bestimmte Version zu erzwingen, können Sie versuchen, einen Versionsparameter zu übergeben:
sudo apt-get install python 3.3.3
virtualenv
). Google-Suche: "Verwenden Sie virtualenv, um die Version von Python zu isolieren". Wenn Sie keinen Container verwenden, setzen Sie sich einem Labyrinth von Problemen aus, da Python einen riesigen Scheiß auf Ihren Computer legt, jeden Winkel und jede Ecke einnimmt und sie sich auf John Cleeseians Art bekämpfen.
Für jeden, der interessiert ist, habe ich eine ausführlichere Schritt- für -Schritt - Artikel über schrieb , wie Python installieren 3.3.2 lokal von der Quelle auf Ubuntu 12.04, meist basierend auf Lesen @ Sergeys ausgezeichnete Antwort oben: http://nicholsonjf.com/ blog / install-python3-local-from-Source
Ich habe ein Skript geschrieben, um das Herunterladen, Kompilieren und Installieren von Python-Versionen zu automatisieren, die nicht zum Paket gehören. Das Skript installiert die Python-Version /opt
sicher und unabhängig von den Paketmanager- und Systemversionen 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 in meinem Github-Repository veröffentlicht , dem Hauptverzeichnis .
Das Skript sollte kopiert und beispielsweise in einem Texteditor gespeichert build_python
und ausführbar gemacht werden ( chmod u+x build_python
). Anschließend kann es mit zwei Parametern ausgeführt werden, wobei der erste Parameter immer der Python-Zweig und der zweite Parameter immer der sein muss Python-Version.
Unter python.org finden Sie eine Auflistung der Version, die Sie kompilieren möchten.
Hier sind einige Beispiele für die Verwendung des Skripts:
Für die Stable-Version kann sie nach Überprüfung der Listings ausgeführt werden als
./build_python '3.3.2' '3.3.2'
Für die Entwicklungsversion, bei der die beiden Parameter in den Auflistungen unterschiedlich sind, kann sie ausgeführt werden als:
./build_python '3.4.0' '3.4.0a1'
Der Hauptteil des Skripts ist unten wiedergegeben (hier wird keine Syntax hervorgehoben). Siehe dazu 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="$1"
py_version="$2"
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}
Warnung : Pythonbrew wurde zugunsten von pyenv abgelehnt. Aktualisierte Anweisungen finden Sie hier
Sie können auch so 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 recht einfach zu bedienen und ein weiterer Vorteil ist, dass Sie jede benötigte Python-Version installieren können. Einzelheiten zum Modus finden Sie in den zugehörigen Dokumenten
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