Python 3.3'i nasıl yüklerim?

103

Python 3.3'ü resmi siteden indirdim, ancak nasıl yükleyeceğimi bilmiyorum.

Ubuntu 12.04 kullanıyorum

    
sordu gonewild 18.01.2013 08:59

8 cevap

112

Python 3.3 29 Eylül 2012 tarihinde yayınlandı, birkaç ay sonra Ubuntu 12.04 yayınlandı. Ubuntu 12.10’da python3.3 paket olarak

bulunur.

Python 3.3'ü, depolarında bulunmayan Ubuntu sürümüne yüklemek isterseniz, aşağıdaki seçeneklere sahipsiniz:

Bir PPA kullan

Felix Krull tarafından sağlanan Eski ve Yeni Python sürümleri içeren bir PPA var. Yükleme yönergeleri için Luper Rouch'un yanıtına bakın.

Python'u kaynağından derleyin

Bu çok kolaydır ve sistem python yorumlayıcısına (çok sayıda Ubuntu kendi programında kullanılır) bulaşmadan birden çok Python sürümüne sahip olmanızı sağlar. Dev makinemde, tam anlamıyla onlarca farklı Python sürümü var. 2.4 ile 3.2 arasında, /opt mutlu bir şekilde yaşıyor.

P derleyicisini derlemek için C derleyicisine ve diğer öğelere ihtiyacımız var

sudo apt-get install build-essential

Python'un SQLite desteğine sahip olması için SQLite libs'lerinin yüklenmesi gerekir.

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

Python'u indirin ve derleyin:

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

Bazı güzel linkler, bir sembolik link oluşturarak py komutunu yüklemektedir:

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

Alternatif olarak, bunun yerine py adlı bir bash takma ad yükleyebilirsiniz:

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

Ve bu kadar. Artık herhangi bir Python sürümüne, hatta bir alfaya sahip olabilirsiniz ya da Python 3.3'ün farklı ayarlarla derlenmiş birkaç kopyasına sahip olmanız yeterlidir ... pek çok kişinin buna ihtiyacı yoktur:)

Pyenv kullan

Prosedürü otomatik hale getirmenize yardımcı olabilecek pyenv adlı bir yazılım var. Temel olarak Python'u kaynaktan derlemek, yüklemek ev dizininizde. Amacı, birden çok Python sürümünü yönetmenize yardımcı olmaktır.

    
verilen cevap Sergey 13.04.2017 14:25
43

İşte Python 3.3'ü Ubuntu 12.04'e yüklemek için yaptım:

  1. Bağımlılıkları yükle:

    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. Python 3.3.0 sürümünü indirin:

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

    tar xvfz Python-3.3.0.tgz
    
  4. Yapılandırma ve Yükleme:

    cd Python-3.3.0
    ./configure --prefix=/opt/python3.3
    make  
    sudo make install
    
  5. Çalıştıysa test edin:

    /opt/python3.3/bin/python3
    

Benzer bir şey görmelisiniz:

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.
>>> 

Bazı ek yararlı şeyler ... evinizde sanal bir ortam oluşturabilir ve talep üzerine Python 3.3'ü etkinleştirebilirsiniz ..

  1. Evinizde bir Sanal Ortam oluşturun:

    /opt/python3.3/bin/pyvenv ~/py33
    
  2. virtualenv'yi etkinleştirin:

    source ~/py33/bin/activate
    
  3. Dağıtım araçlarını yükle:

    wget http://python-distribute.org/distribute_setup.py
    python distribute_setup.py
    
  4. Pip yükleyin:

    easy_install pip
    
  5. İstediğiniz tüm python paketlerini yükleyin (yani şişe)

    pip install bottle
    

Enjoy!

    
verilen cevap Boolean 01.02.2013 00:48
35

deadsnakes PPA eski ve yeni python sürümleri için paketlere sahiptir:

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

Ubuntu 14.04 ve önceki sürümler:

Python2.7 varsayılan olarak gelir, Ubuntu'da python3'ü yüklemek için paket yöneticisini kullanın, Ubuntu bir virtualenv olmadan aynı anda hem 2.7 hem de 3.2'yi işleyebilir:

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

Ubuntu 18.04:

Python3 varsayılan olarak işletim sistemiyle gelir ve özellikle yüklemediyseniz Python2.7 kullanılamaz.

Seçim için üç paket adı: python , python-minimal , python-all . Varsayılan minimumdur. Bu sözler, Ubuntu depolarına ekstra şeyler eklemek için değil, yalnızca bayraklardır. Hangi alt paketlerin tam olarak içerildiğini ve dahil edilmediğini görmek için aşağıdakilerin alt paketlerini inceleyin: İşte

sudo apt install python-minimal
python --version

Veya python3'ü yükseltmeyi denemek için:

sudo apt install python3-minimal
python --version

Belirli bir sürümü zorlamaya çalışmak için, bir sürüm parametresini geçirmeyi deneyebilirsiniz:

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

İlgilenen herkes için, Python 3.3.2 'i Ubuntu 12.04' te kaynağından yerel olarak nasıl yükleyeceğine ilişkin daha ayrıntılı bir adım yazdım. Bu yazıda, çoğunlukla yukarıdaki @ sergey'in mükemmel cevabını temel alarak: İşte

    
verilen cevap James Nicholson 12.11.2013 08:49
1

Paket olmayan Python sürümlerinin tümünü indirmeyi, derlemeyi ve yüklemeyi otomatikleştirmek için bir komut dosyası yazdım. Komut dosyası, Python sürümünü paket yöneticisi ve Python'un sistem sürümlerinden güvenli bir şekilde /opt oranında yükler.

Ubuntu'nun çoğu sürümü için bağımlılıkları da getirir. Şu anda desteklenen tüm Ubuntu sürümlerinde (10.04, 12.04, 12.10 ve 13.04) ve muhtemelen diğer sürümlerde çalışmalıdır.

Bunu aşağıya ekledim ve aynı zamanda Github depomda da yayınladım. konum.

Komut dosyası kopyalanmalı ve örneğin build_python gibi bir metin düzenleyicisine kopyalanmalı ve kaydedilebilmeli ( chmod u+x build_python ) ve daha sonra iki parametre ile çalıştırılabilir, ilk parametrenin her zaman Python şubesi olması gerekir. ve ikinci parametre her zaman Python sürümü olmalıdır.

Derlemek istediğiniz sürümün listeleri için python.org adresine bakın.

İşte, komut dosyasının kullanımının bir çift örneği:

  1. Kararlı sürüm için listeleri kontrol ettikten sonra

    olarak çalıştırılabilir.
    ./build_python '3.3.2' '3.3.2'
    
  2. İki parametrenin listelemelerde farklı olduğu geliştirme sürümü için şu şekilde çalıştırılabilir:

    ./build_python '3.4.0' '3.4.0a1'
    

Komut dosyasının gövdesi aşağıda yeniden üretilmiştir (burada vurgulama söz konusu değildir. Bunun için Github sayfasına bakın :

#!/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}
    
verilen cevap user76204 14.09.2013 12:13
1

Uyarı : Pythonbrew pyenv lehine reddedildi. Güncellenen talimatlar buradaki

Ayrıca, pythonbrew gibi bir şeyi de kullanabilirsiniz:

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

Kullanımı oldukça kolay ve ihtiyacınız olan herhangi bir python sürümünü kurmak mümkün. Lütfen mod ayrıntıları için dokümanlara bakın

    
verilen cevap Alexey Savanovich 24.01.2013 07:24
0

Takip ettiğim adımlar:

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
    
verilen cevap Tarun 03.09.2013 07:51

Etiketlerdeki diğer soruları oku