Resmi siteden Python 3.3'ü indirdim ancak nasıl yükleneceği hakkında hiçbir fikrim yok.
Ubuntu 12.04 kullanıyorum
Resmi siteden Python 3.3'ü indirdim ancak nasıl yükleneceği hakkında hiçbir fikrim yok.
Ubuntu 12.04 kullanıyorum
Yanıtlar:
Python 3.3, Ubuntu 12.04'ün piyasaya sürülmesinden birkaç ay sonra 29 Eylül 2012'de serbest bırakıldı. python3.3
Paket olarak Ubuntu 12.10'a dahil edilmiştir.
Python 3.3'ü, depolarında bulunmayan Ubuntu sürümüne kurmak istiyorsanız, aşağıdaki seçeneklere sahipsiniz:
Bir PPA kullanın
Felix Krull tarafından tutulan Eski ve Yeni Python sürümlerini içeren bir PPA var . Kurulum talimatları için Luper Rouch'un cevabına bakınız .
Python'u kaynaktan derleme
Bu çok kolaydır ve sistem python yorumlayıcısı ile karıştırılmadan birden fazla Python sürümüne sahip olmanıza izin verir (birçok Ubuntu kendi programı tarafından kullanılır). Dev makinemde tam anlamıyla mutlu bir şekilde yaşayan 2.4'ten 3.2'ye kadar farklı Python sürümleri var /opt
.
Python'u 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 lib'lerinin kurulması 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
py
Bir sembolik link oluşturarak bir komut yüklemek için bazı güzel dokunuşlar :
mkdir ~/bin
ln -s /opt/python3.3/bin/python3.3 ~/bin/py
Alternatif olarak, py
bunun yerine adında bir bash diğer adı da yükleyebilirsiniz :
echo 'alias py="/opt/python3.3/bin/python3.3"' >> .bashrc
Ve işte bu. Artık herhangi bir Python sürümüne sahip olabilirsiniz , bir alfa bile, ya da diyelim, Python 3.3'ün birkaç kopyasının farklı ayarlarla derlenmiş olması ... birçok insanın buna ihtiyacı olsa bile değil :)
Pyenv kullan
Pyenv adında , prosedürü otomatikleştirmenize yardımcı olabilecek bir yazılım var - temelde yaptığı şey Python'u kaynağından derlemek ve ana dizininize yüklemek. Amacı, çoklu Python sürümlerini yönetmenize yardımcı olmaktır.
.py
dosyalarım olduğunu #!/usr/bin/env python
varsayalım, hepsini /opt/python3.3
değiştirmeden bu yüklemeyi kullanmalarını nasıl sağlayabilirim? Hatta sisteme kurulmuş olanları bile.
py myscript.py
( py
alıştırma sonunda oluşturduğumuz bir sembolik link). Ayrıca normalde projelerim için virtualenv veya buildout kullanıyorum.
İşte Python 3.3'ü Ubuntu 12.04'e yüklemek için yaptıklarım:
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
Python 3.3.0'ı İndirin:
wget http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz
Ayıkla:
tar xvfz Python-3.3.0.tgz
Yapılandır ve Yükle:
cd Python-3.3.0
./configure --prefix=/opt/python3.3
make
sudo make install
İşe yarayıp yaramadığını test et:
/opt/python3.3/bin/python3
Benzer bir şey görmelisin:
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.
>>>
Yararlı olan bazı ek şeyler ... evinizde sanal bir ortam yaratabilir ve talep üzerine Python 3.3'ü aktif hale getirebilirsiniz.
Evinizde bir Sanal Ortam oluşturun:
/opt/python3.3/bin/pyvenv ~/py33
Virtualenv'i etkinleştirin:
source ~/py33/bin/activate
Dağıtım araçlarını yükleyin:
wget http://python-distribute.org/distribute_setup.py
python distribute_setup.py
Pip yükleyin:
easy_install pip
İstediğiniz python paketlerini kurun (yani şişe)
pip install bottle
Keyfini çıkarın!
sudo apt-get build-dep python3.2
? Muhtemelen install
arasında unuttum :)
build-dep
bir paket değil, bir apt-get
fiildir (benzeri install
). " İstenen kaynak paketleri oluşturmak için gerekli tüm paketleri kurun "
Deadsnakes PPA eski ve yeni piton sürümleri için paketler vardır:
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 ve öncesi:
Python2.7 varsayılan olarak gelir, Ubuntu'da düzenli python üzerine python3'ü kurmak için paket yöneticisini kullanın, Ubuntu hem sanal hem de 3.2 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 işletim sistemi ile birlikte gelir ve özellikle yüklemediğiniz sürece Python2.7 kullanılamaz.
Üç paket isimleri seçmek için: python
, python-minimal
, python-all
. Varsayılan minimumdur. Bu kelimeler sadece Ubuntu depolarına ilave malzeme eklenip eklenmeyeceği bayraklarıdır. Tam olarak hangi alt paketlerin dahil edildiğini ve dahil edilmediğini görmek için aşağıdaki alt paketlere bakın: https://packages.ubuntu.com/bionic/python
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ü zorlamak için bir sürüm parametresini geçmeyi deneyebilirsiniz:
sudo apt-get install python 3.3.3
virtualenv
). Google arama: "Python sürümünü izole etmek için sanalenv kullanın". Bir tür kap kullanmazsanız, o zaman kendinizi pitonun bir labirentine maruz bırakırsınız, çünkü python bilgisayarınızın her yerinde büyük bir bok alır, her köşesinde ve kafasında yer alır ve birbirleriyle John Cleeseian tarzında savaşırlar.
İlgilenen herkes için, Python 3.3.2'yi yerel olarak Ubuntu 12.04'deki kaynaktan nasıl yükleyeceğine dair daha ayrıntılı bir yazı yazdım, çoğunlukla yukarıdaki @ sergey'in mükemmel cevabını okumaya dayanarak: http://nicholsonjf.com/ blog / install-python3-yerel-den-source
Paket olmayan Python sürümlerini indirme, derleme ve yükleme işlemlerini otomatikleştirmek için bir komut dosyası yazdım. Komut dosyası, Python sürümünü Python'un /opt
paket yöneticisinden ve sistem sürümlerinden güvenli bir şekilde kurar .
Hatta Ubuntu'nun çoğu sürümünde de bağımlılıkları 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.
Aşağıya ekliyorum ve aynı zamanda ana konum olan Github depomda yayınladım .
Betik, örneğin bir metin editörüne kopyalanmalı ve kaydedilmeli build_python
ve çalıştırılabilir ( chmod u+x build_python
) olmalı ve daha sonra iki parametreyle çalıştırılabilir; burada ilk parametre her zaman Python dalı olmalı ve ikinci parametre daima Python sürümü
Bkz python.org derlemek isteyen sürümü için listeleri için.
İşte betiğin kullanımına bir kaç örnek:
Kararlı sürüm için, listeleri kontrol ettikten sonra,
./build_python '3.3.2' '3.3.2'
İki parametrenin listelerde 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 çoğaltılmıştır (burada vurgulanan sözdizimi yoktur. Bunun için Github sayfama 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="$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}
Uyarı : Pythonbrew, pyenv lehine kaldırıldı. Güncel talimatlar burada
Ayrıca pythonbrew gibi bir şey kullanabilirsiniz :
curl -kL http://xrl.us/pythonbrewinstall | bash
echo "[[ -s $HOME/.pythonbrew/etc/bashrc ]] && source $HOME/.pythonbrew/etc/bashrc" >> ~/.bashrc
pythonbrew install 3.3
İhtiyacınız olan herhangi bir python sürümünü kurmanızın kullanımı oldukça kolaydır ve başka bir avantajı vardır. Lütfen mod detayları için dokümanlarına bakınız.
İşte izlediğ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