it-swarm.com.de

Wie wechselt man zwischen Python 2 und 3 und umgekehrt?

Ich lese gerade How To Learn Python The Hard Way, der 2 verwendet. Kürzlich entdeckte Invent With Python, der 3 verwendet.

Kann ich Python 3 herunterladen und verwenden, wenn ich Invent With Python lese, und dann zurück zu Python 2 wechsle, wenn ich Python The Hard Way lernen möchte. Wenn ja, wie würde ich wählen, welche Version ich verwende?

32
rayne117

Mit 'virtualenv' können Sie verschiedene isolierte Python-Umgebungen auf einem einzelnen Rechner haben. Sie können auch jederzeit zwischen den verschiedenen Python-Interpreter-Versionen wechseln.

Was ist Virtualenv?

Eine virtuelle Umgebung ist eine isolierte Arbeitskopie von Python, mit der Sie an einem bestimmten Projekt arbeiten können, ohne sich auf andere Projekte auswirken zu müssen. Es ermöglicht mehrere parallele Installationen von Python, eine für jedes Projekt. Es installiert zwar keine separaten Kopien von Python, bietet jedoch eine clevere Methode, um die verschiedenen Projektumgebungen isoliert zu halten. 

Wie installiert man?

pip install virtualenv

So erstellen Sie eine virtuelle Umgebung für Python 2.7:

root:~# which python2.7

/usr/bin/python2.7

root:~# which python3.4

/usr/local/bin/python3.4

Sie können auch einen Python-Interpreter Ihrer Wahl verwenden:

root:~# virtualenv -p /usr/bin/python2.7 Vpy27

Running virtualenv with interpreter /usr/bin/python2.7

New python executable in /root/Vpy27/bin/python2.7

Also creating executable in /root/Vpy27/bin/python

Installing setuptools, pip, wheel...done.

Um die virtuelle Umgebung nutzen zu können, muss sie aktiviert werden:

root:~# source Vpy27/bin/activate

Der Name der aktuellen virtuellen Umgebung wird jetzt links von der Eingabeaufforderung angezeigt:

(Vpy27) root:~# python -V
Python 2.7.3

Installieren Sie Pakete wie üblich:

(Vpy27) root:~# pip install junos-eznc    >> All pip installs done here, will be available only in this environment.

Wenn Sie im Moment nicht in der virtuellen Umgebung arbeiten, können Sie sie deaktivieren:

(Vpy27) root:~# deactivate   

So erstellen Sie eine virtuelle Umgebung für Python 3.4:

root:~# which python3.4

/usr/local/bin/python3.4

root:~# virtualenv -p /usr/local/bin/python3.4 Vpy34

root:~# source Vpy34/bin/activate

(Vpy34) root:~# python -V
Python 3.4.4

Es gibt auch eine Möglichkeit, eine virtuelle Umgebung mit bereits verfügbaren Site-Paketen zu erstellen.

23
Vijay Shetty

hängt von Ihrem System/Ihrer Plattform ab ...

Ich bin derzeit auf Ubuntu 10.10 und habe sowohl 2.6 als auch 3.1 installiert. Der Standardsystem-Python ist 2.6, und Python3 wird als zusätzliches Paket installiert.

[email protected]:~$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
[email protected]:~$ python3
Python 3.1.2 (release31-maint, Sep 17 2010, 20:27:33) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

unter Windows habe ich 2.6 und 3.1 installiert (in C:\Python26 und C:\Python31)

einfach hin und her zu wechseln.


außerdem gibt es einige syntaktische Unterschiede zwischen 2.x und 3.x, die Sie kennen sollten (print ist eine Funktion usw.).

11
Corey Goldberg

Ich bin unter Windows 10 mit Python 3.5 und 2.7. Mit PowerShell wechsle ich zwischen den Versionen. 

############################################################
# Switch to Python 2.7
############################################################

# Remove python 3.5 from PATH
$current_path = [Environment]::GetEnvironmentVariable("Path", "User")
$python3_path = "C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\Scripts\;C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\;"
$new_path = $current_path.replace($python3_path, "")
[Environment]::SetEnvironmentVariable("Path", $new_path, "User")

# Add python 2.7 to PATH
# Run PowerShell as administrator
$current_path = [Environment]::GetEnvironmentVariable("Path", "Machine")
$python2_path = "C:\Python27\;C:\Python27\Scripts;"
$new_path = $python2_path + $current_path
[Environment]::SetEnvironmentVariable("Path", $new_path, "Machine")

# Restart PowerShell to see change

# Confirm change
python --version


############################################################
# Switch to Python 3.5
############################################################

# Remove python 2.7 from PATH
# Run PowerShell as administrator
$current_path = [Environment]::GetEnvironmentVariable("Path", "Machine")
$python2_path = "C:\Python27\;C:\Python27\Scripts;"
$new_path = $current_path.replace($python2_path, "")
[Environment]::SetEnvironmentVariable("Path", $new_path, "Machine")

# Add python 3.5 to PATH
$current_path = [Environment]::GetEnvironmentVariable("Path", "User")
$python3_path = "C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\Scripts\;C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\;"
$new_path = $python3_path + $current_path
[Environment]::SetEnvironmentVariable("Path", $new_path, "User")

# Restart PowerShell to see change

# Confirm change
python --version

Beachten Sie, dass Sie die Pfade entsprechend Ihren Python-Versionen und Ihrem Benutzerprofil aktualisieren müssen.

3
Elijah W. Gagne

In Windows 10 ist es viel einfacher als das, was die Benutzer oben gegeben haben.

Installieren Sie beide Versionen in separaten Ordnern. Wechseln Sie dann zur Umgebungsvariablen und fügen Sie den Pfad für beide Versionen hinzu.

Jedes Mal, wenn Sie eine bestimmte Version ausführen möchten, ändern Sie einfach die Reihenfolge (Pfad) und verschieben Sie sie in den Anfang einer anderen Version. Starten Sie dann erneut den Befehl cmd und geben Sie python ein. Diesmal wird nur die betreffende Version von Python ausgeführt.

 How to switch between python 2 and 3

In meinem Fall habe ich zum Beispiel zwei Python-Versionen in Anaconda (v3.0.6) und Python 2.7

wenn ich den 2.7 ausführen möchte, bewege ich seinen Pfad über die Anaconda-Version, wie im Screenshot oben zu sehen, und verschiebe ihn nach unten, wenn ich Anaconda-Version ausführen möchte.

1
user3065757

Ja, du kannst. Auf meinem Rechner (Vista), v2 und v3 sind mindestens zwei separate Leerlaufzeiten vorhanden, so dass ich die Version ausführen kann, zu der ich Lust habe, wenn ich Lust habe. Laden Sie also v3 herunter.

1
John

Ein paar Wege zu * nix Systemen:

  • Installieren Sie die Dateien in separaten Verzeichnissen (z. B./usr/local/python2 und/usr/local/python3) und erstellen Sie einen Link (z. B./usr/bin/python), den Sie ändern, um auf die zu verwendende ausführbare Datei zu verweisen.
  • Gleiche Installation wie oben, jedoch separate Python-Befehle (z. B./usr/bin/python2 und/usr/bin/python3) einrichten und diese aufrufen, wenn Sie Python aufrufen möchten. Oder setzen Sie den Python-Befehl standardmäßig auf eine davon und eine PythonN für die andere (N = 2 oder 3, je nachdem, welcher nicht der Standard ist).
1
GreenMatt

Wenn Sie Anaconda verwenden:

Erstellen Sie eine Python 2-Umgebung namens py2, installieren Sie Python 2.7

conda create --name py2 python=2.7

Aktivieren Sie und verwenden Sie die Python 2-Umgebung:

WINDOWS:

activate py2

LINUX, macOS:

source activate py2

Deaktiviere die Python 2-Umgebung:

WINDOWS:

deactivate

macOS, LINUX:

source deactivate

Ähnlich für py3

Erstellen Sie eine Python 3-Umgebung mit dem Namen py3, und installieren Sie Python 3.5:

conda create --name py3 python=3.5

und so weiter..

0
aveek

wenn Sie Windows 10 verwenden und Python 2.x und 3.x verwenden.

  1. Öffnen Sie die Systemsteuerung> System und Sicherheit> System 
  2. klicken Sie auf Erweiterte Systemeinstellungen.
  3. klicken Sie auf Umgebungsvariablen.
  4. klicken Sie auf Pfad und bearbeiten Sie den Pfad der Python-Version, die Sie oben verwenden möchten, die Sie nicht verwenden möchten. Klicken Sie auf die Schaltfläche "Nach oben".
  5. powershell neu starten.
  6. python - Version 
0
Ahmed Teir

Ich habe bisher 6 Lösungen ausprobiert:

virtualenv --python=python py27env
mkvirtualenv --python=python3 py3env etc..

auch mit dem virtualenvwrapper-Paket etc . Keines von ihnen funktionierte.

Ich habe Python 3.6 und Python2.7 auf meinem Windows 10-Computer, also habe ich C:\Python27\python.exe in python2.exe und C:\Python36\python.exe in python3.exe umbenannt, oder Sie können sogar verwenden python36.exe-Format . Natürlich C:\Python27, C:\Python27\Scripts, C:\Python36, C:\Python36\Scripts, die den Umgebungsvariablen PATH hinzugefügt wurden.

(1) Für Python3 geben Sie einfach ein:

python3 -m virtualenv venv3

(2) Gehen Sie in den venv-Ordner und aktivieren Sie ihn mit:

Skripte\enable.bat

(3) (venv3) zeigt, dass es aktiviert ist:

(venv3) [email protected] C:\Builts\venv3

(4) und dann prüfen, ob es wirklich 3.6 ist:

python - Version

Python 3.6.0

Für Python2:

python2 -m virtualenv venv2

Ergebnis:

(venv2) [email protected] C:\Builts\venv2
python --version
Python 2.7.9

Ich hoffe es wird helfen.

0
Jozsef Turi

Unter Windows kann der Python Launcher dies für Sie tun.

Der PEP-Artikel sagt:

Shebang-Zeilenanalyse

Wenn das erste Befehlszeilenargument nicht mit einem Bindestrich ('-') .__ beginnt. Zeichen, wird versucht, dieses Argument als Datei zu öffnen und für eine Shebang-Zeile gemäß den Regeln in [1] analysiert:

#! interpreter [optional-arg]

Fügen Sie einfach einen Shebang am Anfang Ihres Python-Skripts hinzu, wie folgt:

#! python3
#coding=utf-8

import sys
print(sys.version)
...

Oder Sie können einen Befehlszeilenparameter an den Launcher py.exe übergeben:

C:\Users\Administrator>py -3 my_script.py

C:\Users\Administrator>py -2 my_script.py
0
xmcp

Hier sind meine 2 Cent.

Wenn Sie sich auf einem Unix-basierten System befinden (Ubuntu usw.) und derzeit über Python 2.x verfügen. Laden Sie den Python 3.x von Python.org herunter.

Nach der Installation wird ein separates Verzeichnis erstellt python3

Du bist fertig. 

Um Ihre Programme mit python2.x auszuführen, verwenden Sie python filename.py

Um Ihre Programme mit python3.x auszuführen, verwenden Sie python3 filename.py

Um den python2.x- und python 3.x-Interpreter hochzufahren, verwenden Sie python und python3.

Ich sehe einige der Antworten, die Sie auf virtualenv hinweisen. Ich glaube nicht, dass Sie danach gefragt haben. Virtualenv wird zum Isolieren von Python-Umgebungen verwendet.

0
SeasonalShot