Większość programowania zajmuję się w Pythonie 3.x na Windows 7, ale teraz muszę korzystać z Python Imaging Library (PIL), ImageMagick i wxPython, z których wszystkie wymagają Python 2.x.
Czy mogę mieć zarówno Python 2.x jak i Python 3.x zainstalowane w systemie Windows 7? Kiedy uruchamiam skrypt, jak mam „wybrać”, która wersja Pythona powinna go uruchomić? Czy wspomniane programy będą w stanie obsłużyć wiele wersji Pythona zainstalowanych jednocześnie? Szukałem godzinami, jak to zrobić bezskutecznie.
Dzięki.
Odpowiedzi:
Stwierdziłem, że formalny sposób na zrobienie tego jest następujący:
Wystarczy zainstalować dwie (lub więcej, używając ich instalatorów) wersje Pythona na Windows 7 (dla mnie praca z 3.3 i 2.7).
Postępuj zgodnie z instrukcjami poniżej, zmieniając parametry dla swoich potrzeb.
Utwórz następującą zmienną środowiskową (domyślnie po podwójnym kliknięciu):
Aby uruchomić skrypt w konkretnym tłumaczu, dodaj następujący shebang (początek skryptu):
Aby wykonać skrypt za pomocą określonego interpretera, użyj następującego polecenia zachęty:
Aby uruchomić określonego tłumacza:
Aby uruchomić domyślny interpreter (zdefiniowany przez zmienną PY_PYTHON):
Zasoby
Dokumentacja: Używanie Pythona w systemie Windows
PEP 397 - Program uruchamiający Python dla systemu Windows
źródło
c:\python35;c:\python35\scripts;c:\python27\scripts;
. Pozwala to na użyciepip2
/pip3
, ieasy_install-2.7
/easy_install-3.5
zamiastpip
ieasy_install
.py -m pip install ...
. Dodaj przełączniki po,py
aby wybrać, pod którym Pythonem uruchomić pip, jak wyżej.To, co zrobiłem, to pobranie zarówno wersji 2.7.6, jak i 3.3.4. Python 3.3.4 ma opcję dodania do niego ścieżki w zmiennej środowiskowej, aby to zrobić. Zasadniczo właśnie dodałem ręcznie Python 2.7.6.
Jak...
Start> w typie wyszukiwania w środowisku wybierz „Edytuj zmienne środowiskowe na swoim koncie” 1
Przewiń w dół do Ścieżka, wybierz ścieżkę, kliknij edytuj.
Dodaj C: \ Python27; więc powinieneś mieć tam ścieżki do obu wersji Pythona, ale jeśli tego nie zrobisz, możesz go łatwo edytować, aby zrobić ..... C: \ Python27; C: \ Python33;
Przejdź do folderu Python27 w C: \ i zmień nazwę kopii python.exe na python2.exe
Przejdź do folderu Python34 w C: \ i zmień nazwę kopii python.exe na python3.exe
Test: otwórz wiersz polecenia i wpisz python2 .... BOOM! Python 2.7.6. wyjdź.
Test: otwórz wiersz polecenia i wpisz python3 .... BOOM! Python 3.4.3. wyjdź.
Uwaga: (aby nie złamać komend pip w kroku 4 i 5, zachowaj kopię pliku python.exe w tym samym katalogu, co plik o zmienionej nazwie)
źródło
Mam wiele wersji w systemie Windows. Zmieniam tylko nazwę exe wersji, której domyślnie nie używam.
Jeśli chodzi o instalatory pakietów, większość programów exe pozwala wybrać instalację Pythona, aby dodać również pakiet. W przypadku instalacji ręcznej sprawdź opcję --prefix, aby określić, gdzie pakiet powinien zostać zainstalowany:
http://docs.python.org/install/index.html#alternate-installation-windows-the-prefix-scheme
źródło
pip3
ipip3.4
. (obejmuje to również jakopip
, ale myślę, że usunięcie powinno rozwiązać wszelkie konflikty z python2). Właściwie nie mamC:\Python34\Scripts
w sobiePath
, więc nie miałem żadnych problemów związanych z pipem ...Jeśli używasz Anaconda Python, możesz łatwo zainstalować różne środowiska.
Załóżmy, że zainstalowałeś Anaconda Python 2.7 i chciałeś mieć środowisko Python 3.4:
Następnie, aby aktywować środowisko:
I dezaktywować:
(W systemie Linux powinieneś użyć
source activate py34
.)Spinki do mankietów:
Pobierz Anaconda Python
Instrukcje dla środowisk
źródło
Aby zainstalować i uruchomić dowolną wersję Pythona w tym samym systemie, postępuj zgodnie z moim przewodnikiem poniżej.
Na przykład powiedz, że chcesz zainstalować Python 2.x i Python 3.x w tym samym systemie Windows.
Zainstaluj obie wersje binarne w dowolnym miejscu.
Uruchamiając po prostu komendę,
python
plik wykonywalny, który jest po raz pierwszy spełniony w PATH, zostanie wybrany do uruchomienia. Innymi słowy, dodaj katalogi Python ręcznie. Ten, który dodasz jako pierwszy, zostanie wybrany podczas pisaniapython
. Kolejne programy w języku Python (rosnąca kolejność umieszczania ich katalogów w ŚCIEŻCE) zostaną wybrane w następujący sposób:python
python
itd.Bez względu na kolejność „pytonów” możesz:
W moim przykładzie najpierw zainstalowałem Python 2.7.14 i Python 3.5.3. Oto jak moja zmienna PATH zaczyna się od:
ŚCIEŻKA = C: \ Program Files \ Microsoft MPI \ Bin \; C: \ Python27; C: \ Program Files \ Python_3.6 \ Scripts \; C: \ Program Files \ Python_3.6 \; C: \ ProgramData \ Oracle \ Java \ javapath; C: \ Program Files (x86) \ Common Files \ Intel \ Shared
...
Zauważ, że Python 2.7 jest pierwszy, a Python 3.5 drugi.
python
komenda uruchomi Python 2.7 (jeśli Python 3.5 to samo polecenie uruchomi Python 3.5).py -2
uruchamia Python 2.7 (ponieważ zdarza się, że drugim Pythonem jest Python 3.5, który jest niezgodnypy -2
). Uruchamianiepy -3
uruchamia Python 3.5 (ponieważ jest to Python 3.x)py -4
. Może się to zmienić, jeśli / kiedy zostanie wydana wersja 4 języka Python.Teraz
py -4
lubpy -5
itd. Na wyjściach mojego systemu:Requested Python version (4) not installed
lubRequested Python version (5) not installed
itp.Mam nadzieję, że jest to wystarczająco jasne.
źródło
pip
. Dla każdego innego zainstalowanego pytona musisz ręcznie określić ścieżkę, tj.C:\Python27\Scripts\pip.py [parameters]
. (Oczywiście, jako skrót, możesz umieścić dowolnego pliku exe w zmiennej środowiskowej.)Począwszy od wersji 3.3 Wersja systemu Windows ma program uruchamiający w języku Python, zobacz sekcję 3.4. Python Launcher dla Windows
źródło
Oto, co możesz zrobić:
Zainstaluj cmder . Otwórz i używaj Cmdera tak, jak przy terminalu cmd. Użyj aliasu poleceń, aby utworzyć aliasy poleceń.
Zrobiłem następujące:
I to wszystko! ;-)
źródło
set-alias python2 c:\python27\python.exe
Właśnie pomyślałem o ciekawym rozwiązaniu. Chociaż system Windows nie pozwala na łatwe aliasowanie programów, możesz zamiast tego utworzyć pliki wsadowe o zmienionej nazwie, które wywołają bieżący program.
Zamiast zmieniać nazwę pliku wykonywalnego, który zepsuje wiele rzeczy, w tym pip, utwórz plik python2.bat w tym samym katalogu, co python2.exe. Następnie dodaj następujący wiersz:
Co oznacza ta archaiczna składnia? Cóż, jest to skrypt wsadowy (wersja bash dla Windows). % ~ dp0 pobiera bieżący katalog, a% * po prostu przekazuje wszystkie argumenty do Pythona, które zostały przekazane do skryptu.
Powtórz dla python3.bat
Możesz również zrobić to samo dla pip i innych narzędzi, po prostu zamień słowo python w pliku na pip lub dowolną inną nazwę pliku. Alias będzie taki, jak nazwa pliku.
Co najlepsze, po dodaniu do ŚCIEŻKI system Windows ignoruje tak działające rozszerzenie
Uruchomi wersję python3, a polecenie python2 uruchomi wersję python2.
BTW, jest to ta sama technika, której używa Spyder, aby dodać się do ścieżki w systemie Windows. :)
źródło
Możesz zainstalować wiele wersji Pythona na jednym komputerze, a podczas instalacji możesz wybrać, aby jedna z nich skojarzyła się z rozszerzeniami plików Python. Jeśli zainstalujesz moduły, będą różne pakiety instalacyjne dla różnych wersji lub możesz wybrać wersję, na którą chcesz kierować. Ponieważ zazwyczaj instalują się w katalogu site-packages wersji interpretera, nie powinno być żadnych konfliktów (ale tego nie testowałem). Aby wybrać wersję Pythona, musisz ręcznie określić ścieżkę do interpretera, jeśli nie jest ona domyślna. O ile wiem, dzielą te same zmienne PATH i PYTHONPATH, co może stanowić problem.
Uwaga: korzystam z systemu Windows XP. Nie mam pojęcia, czy którakolwiek z tych zmian ulegnie zmianie w innych wersjach, ale nie widzę żadnego powodu, aby tak się stało.
źródło
To, co zrobiłem na własnym komputerze z systemem Windows, na którym mam zainstalowany Python 2.7 i Python 3.4, to napisanie prostego pliku .bat w tym samym katalogu, co moje pliki Python.exe. Wyglądają jak
% * Pozwala później dodawać argumenty (pliki Python). Wierzę, że / k utrzymuje monit otwarty po zakończeniu działania skryptu. Następnie zapisuję to jako python27.bat Następnie przechodzę do mojego katalogu Python 3 i tworzę tam plik bat. Teraz w wierszu poleceń mogę pisać
Lub
I będą działać w odpowiednich wersjach Pythona. Upewnij się, że c: \ python27 i c: \ python34 znajdują się w zmiennych środowiskowych.
Mam stąd odpowiedź
źródło
Zrobiłem to w trzech krokach, postępując zgodnie z instrukcjami tutaj: Wszystko to jest pobierane bezpośrednio stąd: http://ipython.readthedocs.io/en/stable/install/kernel_install.html . Obecnie używam Python 2.x na Windows 8 i mam zainstalowaną Anacondę 4.2.13.
1) Najpierw zainstaluj najnowszą wersję Pythona:
2) Następnie aktywuj python3
3) Zainstaluj jądro:
Jeśli masz zainstalowany Python 3 i chcesz zainstalować 2, zmień 2 i 3 powyżej. Po otwarciu nowego notesu możesz teraz wybierać między Pythonem 2 a 3.
źródło
Sprawdź swoje systemowe zmienne środowiskowe po zainstalowaniu Pythona, katalogi Pythona 3 powinny znajdować się najpierw w zmiennej PATH, a następnie python 2.
Która zmienna ścieżki pasuje do pierwszej, to ta, której używa Windows.
Jak zawsze py -2 uruchomi python2 w tym scenariuszu.
źródło
Sam zetknąłem się z tym problemem i zrobiłem moje programy uruchamiające w .bat, abyś mógł wybrać wersję, którą chcesz uruchomić.
Jedynym problemem jest to, że plik .py musi znajdować się w folderze python, ale w każdym razie tutaj jest kod:
Dla Python2
Dla Python3
Zapisz je jako .bat i postępuj zgodnie z instrukcjami w środku.
źródło
Zainstaluj ten, którego używasz najczęściej (w moim przypadku 3.3) nad drugim. Zmusi to IDLE do użycia tego, którego chcesz.
Alternatywnie (z README python3.3):
Instalowanie wielu wersji
W systemach Unix i Mac, jeśli zamierzasz zainstalować wiele wersji Pythona przy użyciu tego samego prefiksu instalacyjnego (argument --prefix w skrypcie konfiguracyjnym), musisz uważać, aby instalacja podstawowego pliku Python nie została nadpisana przez instalację innej wersji. Wszystkie pliki i katalogi instalowane przy użyciu polecenia „make altinstall” zawierają wersję główną i pomocniczą, dzięki czemu mogą żyć obok siebie. „make install” tworzy również $ {prefix} / bin / python3, który odnosi się do $ {prefix} /bin/pythonX.Y. Jeśli zamierzasz zainstalować wiele wersji przy użyciu tego samego prefiksu, musisz zdecydować, która wersja (jeśli istnieje) jest wersją „podstawową”. Zainstaluj tę wersję za pomocą polecenia „make install”. Zainstaluj wszystkie pozostałe wersje za pomocą polecenia „make altinstall”.
Na przykład, jeśli chcesz zainstalować Python 2.6, 2.7 i 3.3 z wersją podstawową 2.7, wykonaj „make install” w katalogu kompilacji 2.7 i „make altinstall” w pozostałych.
źródło
Po prostu musiałem je zainstalować. Następnie skorzystałem z darmowego (i przenośnego) oprogramowania pod adresem http://defaultprogramseditor.com/ pod „Ustawienia typu pliku” / „Menu kontekstowe” / szukaj: „py”, wybrałem plik .py i dodałem polecenie „otwórz” dla 2 IDLE, kopiując istniejące polecenie o nazwie „otwórz z IDLE”, zmieniając nazwy na IDLE 3.4.1 / 2.7.8 i zastępując numery plików odpowiednich wersji w ścieżce programu. Teraz muszę tylko kliknąć plik .py prawym przyciskiem myszy i wybrać, którego IDLE chcę użyć. Możesz zrobić to samo z bezpośrednimi tłumaczami, jeśli wolisz.
źródło
Działa tylko, jeśli uruchamiasz swój kod w środowisku IDE Pythona
Mam zarówno Python 2.7, jak i Python 3.3 zainstalowany w moim systemie operacyjnym Windows. Jeśli spróbuję uruchomić plik, zwykle otworzy się on w środowisku IDE python 2.7. Jak rozwiązałem ten problem, kiedy zdecydowałem się uruchomić mój kod w Pythonie 3.3, otwieram Python 3.3 IDLE (GUI Pythona), wybieram plik, otwieram mój plik z IDLE i zapisuję go. Następnie, kiedy uruchamiam mój kod, przechodzi do IDLE, w którym go aktualnie otworzyłem. Działa odwrotnie z wersją 2.7.
źródło
Zainstalowałem zarówno python 2.7.13, jak i python 3.6.1 na Windows 10pro i otrzymywałem ten sam „błąd krytyczny”, kiedy próbowałem pip2 lub pip3.
To, co zrobiłem, aby to naprawić, to przejść do lokalizacji python.exe dla plików python 2 i python 3 i utworzyć kopię każdego z nich, a następnie zmieniłem nazwę każdej kopii na python2.exe i python3.exe w zależności od wersji python w pliku folder instalacyjny. Dlatego miałem w każdym folderze instalacyjnym Pythona zarówno plik python.exe, jak i python2.exe lub python3.exe, w zależności od wersji python.
To rozwiązało mój problem, gdy wpisałem pip2 lub pip3.
źródło
Jeśli nie możesz uzyskać niczego innego do pracy, otwórz tłumacza w dowolnej wybranej wersji (wolę używanie iPython) i:
Używa dowolnej wersji języka Python, w której aktualnie pracujesz. Działa dobrze dla pojedynczego skryptu, ale szybko wymknie się spod kontroli, jeśli uruchomisz wiele skryptów, w którym to przypadku zawsze możesz utworzyć plik wsadowy ze wszystkimi tymi wywołaniami. Nie jest to najbardziej elegancka odpowiedź, ale działa.
Czy istnieje sposób, aby aliasy dla różnych wersji Pythona były jak Linux?
źródło