En son Python 2.7'yi nasıl yüklerim.X veya 3.Ubuntu'da X mi?

Ubuntu'ya indirilen en son Python tarball'u yüklemek istiyorum http://python.org/download/.

Bu yüklemek için doğru bir yol mu?

./configuremakemake install

Değilse, bunu nasıl yapacağım?

İlk olarak, bazı bağımlılıkları yükleyin:

sudo apt-get install build-essential checkinstallsudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

Ardından aşağıdaki komutu kullanarak indirin:

version=2.7.13cd ~/Downloads/wget https://www.python.org/ftp/python/$version/Python-$version.tgz

Ayıklayın ve dizine gidin:

tar -xvf Python-$version.tgzcd Python-$version

Şimdi, az önce denediğiniz komutu kullanarak yükleyin checkinstall bunun yerine, gerekirse kaldırmayı kolaylaştırmak için:

./configuremakesudo checkinstall

Değişim version hangi sürüme ihtiyacınız varsa (version=2.7.1 veya version=3.6.0, mesela).

Gerçekten kendiniz derlemek için yanan bir arzunuz yoksa, tercih edilen yol kullanmaktır. Ölü yılanlar PPA varsayılan olarak dahil olmayan Python sürümlerini yüklemek için:

sudo add-apt-repository ppa:deadsnakes/ppasudo apt-get updatesudo apt-get install python2.7

Gibi diğer sürümler python2.4 veya python3.6, vb. ayrıca mevcuttur.

Ubuntu'nun en son sürümleri için bunu belgelemeye devam ediyoruz1 : Ubuntu 16.04.1 sunucusu için varsayılan Python sürüm 3.5 ve Python 2.7'dir değil varsayılan olarak yüklenir. Yeni bir kurulumda (bir tane bile olmadığını unutmayın python çalıştırılabilir):

$ type python3 python2 python python3 is /usr/bin/python3-bash: type: python2: not found-bash: type: python: not found$ python3 --version Python 3.5.2$ python --version The program 'python' can be found in the following packages: * python-minimal * python3Try: sudo apt install <selected package>

Not: devam etmeden önce, muhtemelen hızlı bir şekilde yapmak isteyeceksiniz sudo apt-get update, sudo apt-get upgrade, ve sudo apt-get dist-upgrade (lütfen bu komutların gerçekte ne yaptığını tam olarak not edin; Burada yeni bir kurulum varsayıyorum.)

Python 2.7'yi yüklemek kadar kolaydır:

$ sudo apt-get install python2.7

Python 2.7'yi yüklemenin ilk çıktısı aşağıdaki gibidir:

$ sudo apt-get install python2.7Reading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following additional packages will be installed:  libpython2.7-minimal libpython2.7-stdlib python2.7-minimalSuggested packages:  python2.7-doc binutils binfmt-supportThe following NEW packages will be installed:  libpython2.7-minimal libpython2.7-stdlib python2.7 python2.7-minimal0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.Need to get 3,735 kB of archives.After this operation, 15.8 MB of additional disk space will be used.Do you want to continue? [Y/n] Y...etc, etc...

Python 2.7'yi yükledikten sonra,

$ type python3 python2.7 python3.5 python2 pythonpython3 is /usr/bin/python3python2.7 is /usr/bin/python2.7python3.5 is /usr/bin/python3.5bash: type: python2: not foundbash: type: python: not found

Ancak PyPI modüllerini henüz yükleyemediğiniz için hala bir sorun var pip -- örneğin, jupyter notebook'a veya en son scipy veya numpy'ye (vb.) İhtiyacınız varsa, yüklemek isteyeceksiniz pip ve sonra pip install bunlar ve hala dönüyor apt-get herhangi bir gerekli yüklemek için sistem graphviz veya çekirdek sistem kitaplıkları gibi bağımlılıklar.

$ type pip3 pip2 pipbash: type: pip3: not foundbash: type: pip2: not foundbash: type: pip: not found$ python3 -m pip --version /usr/bin/python3: No module named pip

Bu yüzden pip'i tekrar kurmak kadar kolay sudo apt-get install python-pip :

$ sudo apt-cache search -n pip | egrep '^python[0-9]*-pip'python-pip - alternative Python package installerpython-pip-whl - alternative Python package installerpython3-pip - alternative Python package installer - Python 3 version of the package

İkisine de ihtiyacın olacak. python-pip Python 2.7 için pip ve... python3-pip Python 3 için pip. Üzerinden kurulum apt-get gerekli bağımlılıkları yüklediğinizden emin olun; örneğin, pıp2'yi yüklemek için çıktı:

$ sudo apt-get install python-pipReading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following additional packages will be installed:  binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl  libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev  libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev  libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7  libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make  manpages-dev python python-all python-all-dev python-dev python-minimal python-pip-whl  python-pkg-resources python-setuptools python-wheel python2.7-devSuggested packages:  binutils-doc debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib  autoconf automake libtool flex bison gdb gcc-doc gcc-5-multilib gcc-5-locales libgcc1-dbg  libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg  libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc libstdc++-5-doc make-doc python-doc  python-tk python-setuptools-docThe following NEW packages will be installed:  binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl  libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev  libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev  libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7  libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make  manpages-dev python python-all python-all-dev python-dev python-minimal python-pip  python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7-dev0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded.Need to get 61.1 MB of archives.After this operation, 169 MB of additional disk space will be used.Do you want to continue? [Y/n] Y...etc...

Bunun bir sonucu olarak ilginç bir şey oluyor: artık "standart" a sahipsiniz (ve PEP önerilir). python2 ve python3 (bunlar sadece python 2.7 ve python 3.5'e sembolik bağlardır):

$ type python3 python2 python python2.7 python3.5 python3 is /usr/bin/python3python2 is /usr/bin/python2python is /usr/bin/pythonpython2.7 is /usr/bin/python2.7python3.5 is /usr/bin/python3.5

Sen de isteyeceksin sudo apt-get install python3-pip yüklemeden önce şunları yapmalısınız::

$ type pip pip2 pip3pip is /usr/bin/pippip2 is /usr/bin/pip2-bash: type: pip3: not found$ python2 -m pip --version pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)$ python3 -m pip --version /usr/bin/python3: No module named pip

Yükledikten sonra pip3,

$ sudo apt-get install python3-pipReading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following additional packages will be installed:  libpython3-dev libpython3.5-dev python3-dev python3-setuptools python3-wheel python3.5-devSuggested packages:  python-setuptools-docThe following NEW packages will be installed:  libpython3-dev libpython3.5-dev python3-dev python3-pip python3-setuptools python3-wheel python3.5-dev0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.Need to get 38.0 MB of archives.After this operation, 55.2 MB of additional disk space will be used.Do you want to continue? [Y/n] ...etc...

Ortaya çıkan sürümler:

$ type python python2 python3 pip pip2 pip3python is /usr/bin/pythonpython2 is hashed (/usr/bin/python2)python3 is hashed (/usr/bin/python3)pip is /usr/bin/pippip2 is /usr/bin/pip2pip3 is /usr/bin/pip3$ pip --version pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)$ pip3 --version pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)$ python2 -m pip --version pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)$ python3 -m pip --version pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

Ve en sevdiğiniz python PyPİ modüllerini kurmaya başlamadan önce son bir şey: muhtemelen pip'in kendisini yükseltmeniz gerekecek (hem pıp2 hem de pıp3 ayrı ayrı; ayrıca, önemli değil pip üzerinden çağrılır python yürütülebilir dosyalar veya pip yürütülebilir dosyalar, gerçek yükseltmeler saklanır /usr/lib):

$ sudo -H python2 -m pip install --upgrade pip...$ sudo -H python3 -m pip install --upgrade pip...

Artık her ikisini de tek başına çalıştırabilirsiniz pip veya içinde paketlenmiş sürüm python (ile python -m pip {command}).


[1] Tarihsel özet: eski Ubuntu'da yalnızca Python 2.6 vardı, bu nedenle Python 2.7 + 'yı yüklemek için tüm çeşitli yöntemler vardı. Daha sonra, Python 2.7 genel depolara eklendikten sonra, en yeni Python 2.7'yi en son düzeltmelerle yüklemek için hala aynı zorluğu yaşadık, ki bu da sıklıkla gerekliydi. Bugünkü durum çok daha iyi / daha basit: şu anda halka açık repolarda bulunan mevcut Python 2.7 & 3.5 (temelde insanların umursadığı sadece iki Python platformu sürümü) çok kararlı, bu yüzden şimdi gerçekten sadece en son python'u yükleme konusunda endişelenmemiz gerekiyor modül, en son değil piton. Yani şimdi Python "en son sürüm sorunu" taşındı kısmen işletim sistemi repoları ve amp; apt ve PyPI & amp içine; pip.)

12.04

Eğer takip ediyorsanız Achu'nun cevabı, o zaman terim libread5-dev olarak değiştirilmelidir libreadline-gplv2-dev. Yani tam komut şöyle olurdu:

sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

Ayrıca indirebilir ve yükleyebilirsiniz pyenvname

#Install Pyenvgit clone https://github.com/pyenv/pyenv.git ~/.pyenvexport PATH=~/.pyenv/bin:/usr/local/hadoop/bin/:$PATHecho 'export PYENV_ROOT="~/.pyenv"' >> ~/.bash_profileecho 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profileecho 'eval "$(pyenv init -)"' >> ~/.bash_profile#Install Pythonpyenv install 2.7.8pyenv global 2.7.8pyenv install 3.4.5pyenv global 3.4.5

Çoğunlukla bir ayna bu cevap tweaked bir intro ile

Tavsiye ederim pyenvname. Üstbilgi bağımlılıklarını yüklemenin yanı sıra oluşturma işlemini otomatikleştirir (aşağıya bakın). Python'un yeni (veya eski) bir sürümünü basitçe söyleyerek oluşturabilir ve yükleyebilirsiniz pyenv install 3.6.0. Her şey kullanıcı olarak çalışır, bu yüzden endişelenmenize gerek yok pitonu bozmak Ubuntu'nun kendisi tarafından kullanılır.

Bazı apt-repo tabanlı seçeneklerin (örneğin ölü yılanlar) aksine, genellikle bir sürümden sonra aynı gün çalışacaktır. pyenv update çünkü başkasının paketlemesini beklemene gerek yok. Yükleyebileceğiniz tüm sürümlere bakın pyenv install --list

Pyenv'yi yükle

  1. CPYTHON oluşturmak için gereken araçları ve üstbilgileri yükleyin (PyPy veya Jython gibi egzotik Pitonların başka bağımlılıkları olabilir). Git pyenv tarafından kullanılır, ayrıca kaynak dalların oluşturulmasını / kurulmasını da sağlar, böylece şu anda 3.8 olan her şeyi, yani cpython'un ana dalını github'dan yeni yükleyebilirsiniz:

    sudo apt-get install -y gitsudo apt-get install -y build-essential libbz2-dev libssl-dev libreadline-dev \                        libffi-dev libsqlite3-dev tk-dev# optional scientific package headers (for Numpy, Matplotlib, SciPy, etc.)sudo apt-get install -y libpng-dev libfreetype6-dev    
  2. Yükleyici komut dosyasını çalıştırın (orijinal yazar tarafından pyenv ve bazı çok kullanışlı pyenv eklentilerini yükler; bkz. burada daha fazlası için)

    curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
  3. İnit satırlarınızı ~/.profile veya ~/.bashrc (yükleme komut dosyasının sonunda bahseder):

    export PATH="~/.pyenv/bin:$PATH"eval "$(pyenv init -)"eval "$(pyenv virtualenv-init -)"
  4. Kabuğunuzu yeniden başlatın (kapatın ve açın veya exec $SHELL) veya profil komut dosyasını yeniden yükleyin. (örn. source ~/.bashrc)

Bitti!

Ortam kurma

Sistem Pythonuna dokunmamak için (genellikle kötü bir fikir; İşletim sistemi düzeyinde hizmetler bazı özel kütüphane sürümlerine vb. Güveniyor olabilir.) kendi ortamınızı yaratın, çok kolay! Daha da iyisi, hayır sudo, bunun için veya pip yükler!

  1. Tercih ettiğiniz Python sürümünü yükleyin (bu, kaynağı indirecek ve kullanıcınız için oluşturacaktır, girdi gerekmez)

    pyenv install 3.6.0
  2. Bunu bir virtualenv yapın, böylece isterseniz başkalarını daha sonra yapabilirsiniz

    pyenv virtualenv 3.6.0 general
  3. Global olarak aktif hale getirin (kullanıcınız için)

    pyenv global general
  4. Python / pip vb. Ile istediğinizi yapın. Senindir.

Kitaplıklarınızı daha sonra temizlemek isterseniz, virtualenv'yi silebilirsiniz (pyenv uninstall general) veya yeni bir tane yapın (pyenv virtualenv 3.6.0 other_proj). Dizin başına etkin ortamlara da sahip olabilirsiniz: pyenv local other_proj bir damla olacak .python-version geçerli klasörünüze dosya gönderin ve Python veya pıp yüklü Python yardımcı programlarını ondan veya altından her çağırdığınızda pyenv tarafından parlatılır.

Arıza

  • bash: pyenv: command not found, fish: Unknown command 'pyenv'

    1. Seninkini kontrol et $PATH, gibi bir şeyle biten bir giriş olmalı .pyenv/bin. Eğer eksikse # 3'ü takip ettiğinizden emin olun VE #4 yukarıdaki pyenv'yi yükle altında (kabuğunuzu yeniden başlatın).
  • pyenv: no such command 'virtualenv'

    1. Yükleyici komut dosyasını kullanmadıysanız, büyük olasılıkla yalnızca kök pyenv paketini yüklediniz. Görmek pyenv-sanalenv eklenti ekleme talimatları için
    2. Yükleyici komut dosyasını kullandıysanız, şu komut dosyasıyla görünüp görünmediğini kontrol edin: pyenv commands.

Bir zamanlar, bunun Ubuntu’ya bir newer python sürümü yüklemek için sorulduğunu hayal ediyorum. Şimdi, Ubuntu’ya bir older python sürümü yüklemek gerekiyor (çünkü biz still bir çok şey için python 2.7’ye ihtiyacımız var)… tl;dr: Bu cevap artık geçerli / doğru değil. Bunun yerine, python3’ün varsayılan olarak yüklendiğini varsayarsak (ve belki de minimum python2.x), sonra çalıştırın: 'sudo apt-get install python-2.7 python-pip`

@jargonjunkie konu dışısın ama haklısın. Eğer soru “python 2.7’yi ubuntu 16.04+ 'ya nasıl kurabilirim” ise (16.04 şu anda mevcut olduğundan, ki bu benim amacım), o zaman sadece sudo apt-get install python2.7. Bu sadece daha kolay değil, tek doğru cevaptır, çünkü python modüllerini apt-get ve bağımlılıkları aracılığıyla yüklemenin tek yolu budur.

@michael_n neden bahsediyorsun? kaynaktan derleme, bu yanıtın yanlış veya güncelliğini yitirmesine neden olmaz. bu sadece farklı bir yöntem. gerekirse işlemi sizin için otomatikleştirmek için apt’yi kullanabilirsiniz.

ihtiyacın olanı kullan. Bunun modası geçmiş olma iddianı nasıl desteklediğini gerçekten anlamıyorum. kendin söylediğin gibi, ihtiyacın olduğunda kullanıyorsun çünkü müsait olmayabilir. Örneğin, linux için windows alt sistemi, dağıtım ubuntu 16.04.1 (beta) olsa bile bazı tarihli yazılım paketlerini kullanır ve python2.6.2’yi kullanır ve python3 şu anki python2.7.12’yi kullanır. Bu durumda, güncel paketler istiyorsam derlemeliyim

umarım bu yardımcı olur (cevap eklendi). python ekosistemi çok özel / titizdir ve python ortamınızı dikkatli bir şekilde oluşturmazsanız kolayca “bağımlılık cehennemine” girebilirsiniz software installation - How do I install the latest Python 2.7.X or 3.X on Ubuntu? - Ask Ubuntu

tamamen haklısın. bağımlılıkları siteden kolayca dizine ekleyebilirsiniz. ve aslında, alt sistem 14.04.5 kullanır ve varsayılan olarak 2.7.2 kullanır (elbette w py3 boyunca). apt-get her zaman bir seçenek olmayabilir ve dpkg’nin orada olduğunu göstermek için yararlıdır. bu, bu seçeneklerin kullanılamayabileceği ve her zaman en iyi seçenek olmasa da özel senaryolar için kullanışlıdır (açıkçası, apt’yi kullanabiliyorsanız, apt’yi kullanmalısınız). Çok fazla debian paketini desteklemeyen birkaç özel ortamım var, bu yüzden kendimi sık sık dpkg kullanıyorum. bir tutamda nasıl kullanılacağını bilmek son derece değerli olabilir.