Heute werde ich Ihnen sagen, wie Sie die Versionen Python 2.7 und 3.5 unter CentOS 6.4 installieren. Und wir werden dies tun, ohne die vorhandene Python-Installation (die standardmäßig vom System installierte Version ist 2.6.6 auf CentOS 6.4) und andere Systemtools wie yum zu beschädigen . Nun, der Hauptgrund für dieses Tutorial ist – ich habe kürzlich Python 3 installiert und alles kaputt gemacht – Python, Pip, Yum usw. Hier ist der Schnappschuss davon: yum brach nach der Installation/Upgrade von 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 konnte yum nicht importieren nach der Installation/Aktualisierung von 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 >>>
und Pip ging auch kaputt:
# 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
Die Lektion, die wir gelernt haben, lautet also:Machen Sie niemals mit Python rum!! (Sobald die Python kaputt ist, ist sie sehr schwer zu reparieren). Das heißt, wenn Sie jemals mehrere Versionen von Python auf einem einzigen Computer installieren möchten, dann tun Sie es auf die richtige Weise!
Hinweis:Installieren Sie neue Python-Versionen immer an einem nicht standardmäßigen Speicherort (z. B. /usr/local/)
Prerequisites: You need root access or sudo privilege.
Bereiten Sie das System auf die Einrichtung von Python vor, indem Sie die „Entwicklungstools“ und die erforderlichen Bibliotheken installieren.
Entwicklungstools installieren:
#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!
Möglicherweise benötigen Sie auch diese Bibliotheken:
Diese Bibliotheken sind nicht unbedingt erforderlich, um Python zu installieren, aber Sie benötigen sie möglicherweise zu einem späteren Zeitpunkt.
#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!
Kompilieren und installieren Sie Python 2.7 unter CentOS 6.4
Python 2.7 herunterladen:
# wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
# tar xf Python-2.7.6.tar.xz
Hinweis: Die neueste Version von tar kann .xz extrahieren Datei. Falls Sie mit tar nicht extrahieren konnten , dann ist hier eine Anleitung, die Ihnen dabei helfen kann.
# 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
Hinweis: Ich werde Python in /usr/local installieren . Das bedeutet, dass die ausführbare Datei in /usr/local/bin installiert wird und Bibliotheken in /usr/local/lib . Halten Sie Ausschau nach den LDFLAGS auch.
# 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*
Hinweis: Suchen Sie nach make altinstall – Sie sollten niemals „make install“ verwenden, da dies beide Versionen auf demselben Dateisystem installiert und Python durcheinander bringt.
Python 2.7 ist installiert unter:
# ls -ld /usr/local/lib/python2.7/
Kompilieren und installieren Sie Python 3.5 unter 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/
Installieren Sie Setuptools und Python Pip:
Lassen Sie uns nun setuptools installieren und Pip für beide Python-Versionen (2.7 und 3.5), die wir oben installiert haben:
# 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
Aktualisierung: Der obige Befehl schlägt mit dem Fehler „Nicht gefunden“ fehl. Verwenden Sie stattdessen den folgenden Befehl, um pip2.7 zu installieren.
#curl https://bootstrap.pypa.io/get-pip.py | /usr/local/bin/python2.7
Installationstools für Python 2.7 installieren:
# python2.7 ez_setup.py
Installationstools für Python 3.5 installieren:
# 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
Pip für Python 2.7 installieren:
# 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
Pip für Python 3.5 installieren:
# 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
Wir haben also zwei Versionen von Python, Pip und Setuptools. Wir isolieren jetzt diese Python-Umgebungen (2.7 und 3.5).
So richten Sie isolierte Python-Umgebungen ein
Dazu benötigen wir ein Paket namens virtualenv.
Installieren Sie virtualenv für Python 2.7:
#pip2.7 install virtualenv ::::::::::::::::::::::::::: Installing collected packages: virtualenv Successfully installed virtualenv-14.0.0
Suchen Sie nach der Installation nach virtualenv Befehle wie unten gezeigt:
# virtualenv<tab> virtualenv virtualenv-3.5
Lassen Sie uns jetzt eine isolierte Umgebung mit virtualenv erstellen für Python 2.7 und ich nenne diese virtuelle Umgebung py27env (Sie können einen anderen Namen festlegen).
# virtualenv py27env New python executable in /root/py27env/bin/python2.7 Also creating executable in /root/py27env/bin/python Installing setuptools, pip, wheel...done.
Die isolierte Umgebung (als Sandbox bezeichnet) wird im aktuellen Verzeichnis erstellt, in dem Sie den obigen Befehl ausgeführt haben. Achten Sie auf den Ordner mit dem Namen py27env (kann in Ihrem Fall ein anderer Name sein).
# ls -ld py27env/ drwxr-xr-x. 5 root root 4096 Jan 21 15:25 py27env/
Sie müssen die Sandbox py27env aktivieren :
# source py27env/bin/activate (py27env)
Überprüfen Sie nun die Version von Python wie unten gezeigt:
# python --version Python 2.7.6
Die obige Ausgabe zeigt, dass Sie sich in der Python 2.7.6-Sandbox befinden. Um zurück zur vom System installierten Python-Version zu wechseln, müssen Sie sie nur wie folgt deaktivieren:
(py27env)# deactivate
Prüfen Sie jetzt die Version:
# python --version Python 2.6.6 //You are now back to default Python environment.
Erstellen Sie eine Sandbox-Umgebung für Python 3.5
Wir haben virtualenv verwendet um eine Sandbox für Python 2.5 zu erstellen, aber für Python 3.5 verwenden wir den integrierten Befehl namens pyvenv-3.5.
# pyvenv-3.5 py35environment (py35environment)
Im aktuellen Verzeichnis finden Sie ein Verzeichnis namens „py35environment“. Lassen Sie uns nun die Python 3.5-Umgebung wie unten gezeigt aktivieren:
# source py35environment/bin/activate (py35environment)
(py35environment) # python --version Python 3.5.1
Deaktivieren Sie es wie folgt:
(py35environment) # deactivate
# python --version Python 2.6.6
Das ist es! Sie haben jetzt zwei verschiedene Python-Umgebungen und Sie haben es geschafft, ohne etwas durcheinander zu bringen. Ich hoffe, dieses Tutorial hat Ihnen geholfen.