2013-04-09 26 views
35

Czy istnieje sposób instalacji Pythona 3 przez instalację Pythona 2 bez rujnowania czegokolwiek? Głównym problemem jest to, że mam kod uruchamiany przez "python xxxxx.py abc123". Czy istnieje sposób, aby zmienić python 3 na "python3 xxxx.py abc123"? To samo polecenie python jest konfliktJak uruchomić python 2 i 3 w systemie Windows 7?

+0

Z pewnością jest to możliwe, ponieważ "instalowanie pythona" jest po prostu wyodrębnieniem garści folderów. Po prostu uruchom instalatory, a będziesz mieć foldery python26 i python32 na dysku C.Odnosząc się do polecenia, będziesz potrzebował jakiegoś manipulowania zmiennymi środowiskowymi za każdym razem, gdy chcesz korzystać z drugiego, więc może potrzebny jest skrypt skrótu do modyfikacji PATH? –

+0

http://j.mp/ZfKVrb może to pomoże – dnelson

+0

Brak potrzeby używania skrzypiec w Pythonie 3.3. – pepr

Odpowiedz

80

Istnieje lepszy sposób koegzystencji/uruchamiania Pythona 2 i Pythona 3 w systemie Windows. Python 3.3 wprowadził wyrzutnię Python dla Windows (patrz http://www.python.org/dev/peps/pep-0397/).

Po instalacji Pythona 3.3, py.exe i pyw.exe jest kopiowany do katalogu c:\Windows i stowarzyszenia są ustawione na przedłużeniu .py tak, że używa wyrzutni. Domyślnie uruchamiany jest Python 2 dla py script.py. py -3 script.py uruchamia Python 3. (oznacza to również, że żadna ścieżka dla Pythona musi być dodany do środowiska -. C:\Windows już jest w PATH)

Najlepszy ze wszystkich jest to, że #!python2 w skrypcie powoduje lauching poprzez Pythonie 2, #!python3 powoduje uruchomienie skryptu za pośrednictwem Pythona 3. W ten sposób można używać skryptów dla obu wersji Pythona i można je ujednolicić - py script.py lub klikając ikonę skryptu.

Jest więcej szczegółów, ale jest to w zasadzie to, czego potrzebujesz.

Aktualizacja: Przy użyciu Pythona wyrzutnię dla Windows, można również uruchomić skrypt Pythona z cmd oknie wpisując > script.py (czyli bez wyraźnego wpisując py --the nazwa wyrzutni Pythona - w przedniej części skryptu nazwa) lub nawet wpisując nazwę bez rozszerzenia .py (czyli tylko > script).

W ten sposób rzeczy zaczynają przypominać uniksowy sposób nazywania skryptów (bez potrzeby rozszerzenia); Jednak podczas tworzenia pliku skryptu musisz jeszcze dodać rozszerzenie .py.

(Tak, to jest nieco bardziej brudny niż podejście Unix. Jest to różnica pomiędzy „Myśl pierwszy!” i „Sell pierwszy!” podejścia z rozwojem tych systemów operacyjnych. W każdym razie, mój kudos zespołowi programistycznemu Python, aby wycisnąć z systemu Windows najlepsze efekty - zwalniając program uruchamiający Python dla systemu Windows.)

+7

Nie widzę żadnego py.exe ani pliku pyw.exe. Ale po uruchomieniu Pythona otrzymuję: 'Błąd krytyczny Python: Py_Initialize: nie można załadować kodeku systemu plików Plik" C: \ Python27 \ lib \ encodings \ __ init__.py ", wiersz 123 raise CodecRegistryError, \ ^ SyntaxError : nieprawidłowa składnia'. Co oznacza, że ​​python3 próbuje uruchomić python2. – CMCDragonkai

+0

Właściwie plik py.exe znajduje się w C: \ Python33. Ale jeśli spróbuję uruchomić py -3, pojawia się ten sam błąd, co powyżej. – CMCDragonkai

+0

@CMCDragonkai: Nie mogę tego potwierdzić. Właśnie odinstalowałem wszystkie wersje Pythona, które miałem na moim dysku, fizycznie usuwając również C: \ PythonXX (z pakietami lokacji itp.), Fizycznie usunięto również C: \ Windows \ py.exe i pyw.exe. Następnie pobrałem i zainstalowałem plik http://www.python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi (py.exe nie dodano do C: \ Windows), a następnie http: //www.python.org/ftp/python/3.3.2/python-3.3.2.amd64.msi - py.exe i pyw.exe dodane do C: \ Windows. Jaką wersję systemu Windows posiadasz? – pepr

6

Nie jestem pewien, czy to swoich potrzeb, ale trzeba spojrzeć na virtualenv: http://www.virtualenv.org/en/latest/

To pozwoli Ci utworzyć oddzielne środowisko dla Pythona 2 i 3 (przy użyciu - flaga p). Jeśli Twój przypadek użycia jest czymś, do czego to nie zadziałało, zaktualizuj pytanie o kilka szczegółów i jestem pewien, że dostaniesz inne sugestie.

2

Zakładając, że instalujesz python3 w oddzielnym katalogu, możesz także zmienić nazwę pliku wykonywalnego Pythona 3 na python3.exe.

+1

Zmiana nazwy '.exe' powoduje przerwanie używania' py -3', co zostało zasugerowane przez @pepr. – Kevin

0

Musisz edytować zmienną środowiskową, aby uwzględnić ścieżkę Python 3 lub Python 2.

Powiązane problemy