GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie installiere ich mehrere Versionen von Python (2.7 und 3.5), ohne Systemtools zu beschädigen, und erstelle eine isolierte Umgebung mit Virtualenv?

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


Linux
  1. Raspberry Pi Firewall:So installieren und verwalten Sie sie mit UFW

  2. Erstellen Sie mit Conda eine virtuelle Umgebung für verschiedene Python-Versionen

  3. So installieren und wechseln Sie Python-Versionen unter Ubuntu 20.04

  4. So erstellen und fragen Sie ein BTRFS-Dateisystem ab

  5. Wie kann ich die Tools in Kernel/Tools kompilieren, installieren und ausführen?

VMware:So erstellen Sie eine virtuelle Maschine und installieren das Gastbetriebssystem mit dem vSphere-Client

So installieren und verwenden Sie YouTube-DL auf einem Linux-System

So installieren und konfigurieren Sie AnyDesk auf einem Linux-System

So installieren und konfigurieren Sie Django auf einem Linux-System

So installieren und konfigurieren Sie PrestaShop auf einem Linux-System

So installieren und konfigurieren Sie Elasticsearch auf einem Linux-System