Hari ini, saya akan memberi tahu Anda cara menginstal versi Python 2.7 dan 3.5 di CentOS 6.4. Dan kita akan melakukan ini tanpa merusak instalasi Python yang ada (versi default sistem yang diinstal adalah 2.6.6 pada CentOS 6.4) dan alat sistem lainnya seperti yum . Nah, alasan utama di balik tutorial ini adalah – Saya baru saja menginstal Python 3 dan merusak semuanya – python, pip, yum dll…Inilah cuplikannya: yum rusak setelah menginstal/memutakhirkan Python:
# yum There was a problem importing one of the Python modules required to run yum. The error leading to this problem was: No module named rpm Please install a package which provides this module, or verify that the module is installed correctly.
Python gagal mengimpor yum setelah menginstal/memutakhirkan Python:
# python Python 2.6 (r26:66714, Dec 16 2015, 11:33:08) [GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import yum Traceback (most recent call last): File "", line 1, in ImportError: No module named yum >>>
dan pip rusak juga:
# pip Traceback (most recent call last): File "/usr/bin/pip", line 5, in from pkg_resources import load_entry_point ImportError: No module named pkg_resources
Jadi, pelajaran yang didapat adalah – Jangan pernah main-main dengan Python!! (Setelah Python rusak, sangat sulit untuk memperbaikinya). Artinya, jika Anda ingin menginstal beberapa versi Python pada satu mesin, lakukan dengan cara yang benar!
Catatan:Selalu instal versi baru Python di lokasi yang tidak standar (seperti /usr/local/)
Prerequisites: You need root access or sudo privilege.
Siapkan sistem untuk menyiapkan Python dengan menginstal “Alat Pengembangan” dan pustaka yang diperlukan.
Instal Alat Pengembangan:
#yum groupinstall "Development tools" ::::::::::::::::::::::::: ::::::::::::::::::::::::: rpm-libs.x86_64 0:4.8.0-47.el6 rpm-python.x86_64 0:4.8.0-47.el6 xz-libs.x86_64 0:4.999.9-0.5.beta.20091007git.el6 Complete!
Anda mungkin juga memerlukan perpustakaan ini:
Pustaka ini tidak diperlukan untuk menginstal Python, tetapi Anda mungkin memerlukannya di tahap selanjutnya.
#yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel ::::::::::::::::::::::::::: ::::::::::::::::::::::::::: ncurses-libs.x86_64 0:5.7-4.20090207.el6 openssl.x86_64 0:1.0.1e-42.el6_7.2 sqlite.x86_64 0:3.6.20-1.el6_7.2 Complete!
Kompilasi dan Instal Python 2.7 di CentOS 6.4
Unduh Python 2.7:
# wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
# tar xf Python-2.7.6.tar.xz
Catatan: Versi terbaru tar mampu mengekstraksi .xz mengajukan. Jika Anda tidak dapat mengekstrak menggunakan tar , maka inilah panduan untuk membantu Anda.
# cd Python-2.7.6
#./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" ::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::: configure: creating ./config.status config.status: creating Makefile.pre config.status: creating Modules/Setup.config config.status: creating Misc/python.pc config.status: creating Modules/ld_so_aix config.status: creating pyconfig.h creating Modules/Setup creating Modules/Setup.local creating Makefile
Catatan: Saya akan menginstal Python di /usr/local . Artinya, executable akan dipasang di /usr/local/bin dan perpustakaan di /usr/local/lib . Cari LDFLAGS juga.
# make && make altinstall :::::::::::::::::::::::::::::: running install_scripts copying build/scripts-2.7/idle -> /usr/local/bin copying build/scripts-2.7/smtpd.py -> /usr/local/bin copying build/scripts-2.7/pydoc -> /usr/local/bin copying build/scripts-2.7/2to3 -> /usr/local/bin changing mode of /usr/local/bin/idle to 755 changing mode of /usr/local/bin/smtpd.py to 755 changing mode of /usr/local/bin/pydoc to 755 changing mode of /usr/local/bin/2to3 to 755 running install_egg_info Writing /usr/local/lib/python2.7/lib-dynload/Python-2.7.6-py2.7.egg-info rm /usr/local/lib/python2.7/lib-dynload/_sysconfigdata.py*
Catatan: Cari buat altinstall – Anda tidak boleh menggunakan 'make install' karena akan menginstal kedua versi pada sistem file yang sama dan akan mengacaukan python.
Python 2.7 diinstal di bawah:
# ls -ld /usr/local/lib/python2.7/
Kompilasi dan Instal Python 3.5 di CentOS
# wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xz
# tar xz Python-3.5.1.tar.xz
# cd Python-3.5.1
# ./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" ::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::: configure: creating ./config.status config.status: creating Makefile.pre config.status: creating Modules/Setup.config config.status: creating Misc/python.pc config.status: creating Misc/python-config.sh config.status: creating Modules/ld_so_aix config.status: creating pyconfig.h creating Modules/Setup creating Modules/Setup.local creating Makefile
# make && make altinstall :::::::::::::::::::::::: :::::::::::::::::::::::: Ignoring indexes: https://pypi.python.org/simple Collecting setuptools Collecting pip Installing collected packages: setuptools, pip Successfully installed pip-7.1.2 setuptools-18.2
Python 3.5 installed: # ls -ld /usr/local/lib/python3.5/
Instal Setuptools dan Python Pip:
Sekarang mari kita instal setuptools dan pip untuk kedua versi Python (2.7 dan 3.5) yang kami instal di atas:
# wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py (or)
# curl https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py | /usr/local/bin/python2.7You're using an outdated location for the get-pip.py script, please use the one available from https://bootstrap.pypa.io/get-pip.py
Pembaruan: Perintah di atas akan gagal dengan tidak ditemukan kesalahan. Sebagai gantinya gunakan perintah di bawah ini untuk menginstal pip2.7.
#curl https://bootstrap.pypa.io/get-pip.py | /usr/local/bin/python2.7
Instal alat penyiapan untuk Python 2.7:
# python2.7 ez_setup.py
Instal setuptools untuk Python 3.5:
# python3.5 ez_setup.py ::::::::::::::::::::::::: Installed /usr/local/lib/python3.5/site-packages/setuptools-19.4-py3.5.egg Processing dependencies for setuptools==19.4 Finished processing dependencies for setuptools==19.4
Menginstal pip untuk Python 2.7:
# easy_install-2.7 pip :::::::::::::::::::::: Installing pip script to /usr/local/bin Installing pip2.7 script to /usr/local/bin Installing pip2 script to /usr/local/bin Installed /usr/local/lib/python2.7/site-packages/pip-8.0.0-py2.7.egg Processing dependencies for pip Finished processing dependencies for pip
Menginstal pip untuk Python 3.5:
# easy_install-3.5 pip Searching for pip Best match: pip 7.1.2 Adding pip 7.1.2 to easy-install.pth file Installing pip3.4 script to /usr/local/bin Installing pip3 script to /usr/local/bin Installing pip script to /usr/local/bin Using /usr/local/lib/python3.5/site-packages Processing dependencies for pip Finished processing dependencies for pip
Jadi kami memiliki dua versi Python, pip dan setuptools. Sekarang kita akan mengisolasi lingkungan Python tersebut (2.7 dan 3.5).
Cara menyiapkan lingkungan Python yang terisolasi
Untuk melakukan itu, kita membutuhkan sebuah paket bernama virtualenv.
Instal virtualenv untuk Python 2.7:
#pip2.7 install virtualenv ::::::::::::::::::::::::::: Installing collected packages: virtualenv Successfully installed virtualenv-14.0.0
Setelah diinstal, cari virtualenv perintah seperti yang ditunjukkan di bawah ini:
# virtualenv<tab> virtualenv virtualenv-3.5
Mari kita sekarang membuat lingkungan yang terisolasi menggunakan virtualenv untuk Python 2.7 dan saya akan menamai lingkungan virtual itu sebagai py27env (Anda dapat menetapkan nama yang berbeda).
# virtualenv py27env New python executable in /root/py27env/bin/python2.7 Also creating executable in /root/py27env/bin/python Installing setuptools, pip, wheel...done.
Lingkungan terisolasi (disebut sebagai kotak pasir) akan dibuat di direktori saat ini tempat Anda menjalankan perintah di atas. Cari folder bernama py27env (mungkin nama yang berbeda dalam kasus Anda).
# ls -ld py27env/ drwxr-xr-x. 5 root root 4096 Jan 21 15:25 py27env/
Anda perlu mengaktifkan kotak pasir py27env :
# source py27env/bin/activate (py27env)
Sekarang, periksa versi python seperti yang ditunjukkan di bawah ini:
# python --version Python 2.7.6
Output di atas menunjukkan bahwa Anda menggunakan sandbox Python 2.7.6. Untuk beralih kembali ke versi Python yang diinstal sistem, Anda hanya perlu menonaktifkannya seperti di bawah ini:
(py27env)# deactivate
Periksa versi sekarang:
# python --version Python 2.6.6 //You are now back to default Python environment.
Buat lingkungan kotak pasir untuk Python 3.5
Kami menggunakan virtualenv untuk membuat kotak pasir untuk Python 2.5, tetapi untuk Python 3.5 kami akan menggunakan perintah bawaan yang disebut pyvenv-3.5.
# pyvenv-3.5 py35environment (py35environment)
Anda akan menemukan direktori bernama 'py35environment' di direktori saat ini. Sekarang mari kita aktifkan lingkungan Python 3.5 seperti yang ditunjukkan di bawah ini:
# source py35environment/bin/activate (py35environment)
(py35environment) # python --version Python 3.5.1
Nonaktifkan seperti di bawah ini:
(py35environment) # deactivate
# python --version Python 2.6.6
Itu dia! Anda sekarang memiliki dua lingkungan Python yang berbeda dan Anda melakukannya tanpa mengacaukan apa pun. Semoga tutorial ini membantu Anda.