Używam systemu Windows, a powłoka / system operacyjny automatycznie uruchamia Python w oparciu o ustawienia rejestru, gdy uruchamiasz program w wierszu poleceń. Czy to się skończy, jeśli zainstaluję wersję 2.xi 3.x Pythona na tym samym komputerze?
Chcę bawić się Pythonem 3, jednocześnie mając możliwość uruchamiania skryptów 2.x na tej samej maszynie.
python
windows
python-3.x
compatibility
miętowy
źródło
źródło
/usr/bin/python
i Python 3.3 na/usr/bin/python3
. Daje także różne nazwy dla Pip i IPython w Pythonie3. Bardzo poręczne.Odpowiedzi:
Wydaje się, że oficjalnym rozwiązaniem koegzystencji jest Python Launcher dla Windows , PEP 397, który został zawarty w Pythonie 3.3.0 . Instalowanie zrzutów wydania
py.exe
i programówpyw.exe
uruchamiających w%SYSTEMROOT%
(C:\Windows
), które są następnie powiązane odpowiednio ze skryptamipy
ipyw
.Aby korzystać z nowego programu uruchamiającego (bez ręcznego tworzenia z nim własnych powiązań), pozostaw włączoną opcję „Zarejestruj rozszerzenia”. Nie jestem do końca pewien, dlaczego, ale na moim komputerze pozostawiono Py 2.7 jako „domyślne” (w programie uruchamiającym).
Uruchamianie skryptów przez wywołanie ich bezpośrednio z wiersza poleceń przekieruje je przez program uruchamiający i przeanalizuje shebang (jeśli istnieje). Można również jawnie wywołać wyrzutni i używać przełączników:
py -3 mypy2script.py
.Wydaje się, że wszystkie rodzaje grzywki działają
#!C:\Python33\python.exe
#!python3
#!/usr/bin/env python3
a także bezmyślne nadużycia
#! notepad.exe
źródło
py.exe
powinno domyślnie uruchamiać Py3 przez Py2, gdy żadna wersja nie jest określona, a plik nie zawiera linii shebangwhere.exe pip
. Myślę, że instalator Pythona 3 instalujepip3
alias dla swojego pip, ale możesz też zrobić coś takiegopy -3 -m pip install requests
, jak myślę.Oto moja konfiguracja:
C:\Python34
(domyślna ścieżka instalacji) i zmień python.exe na python3.exeC:\Python27\;C:\Python27\Scripts\;C:\Python34\;C:\Python34\Scripts\;
Teraz w linii poleceń możesz używać
python
dla 2.7 ipython3
3.4.źródło
pip
w CLI?pip
ipip3
.Możesz mieć oba zainstalowane.
Powinieneś napisać to przed swoim skryptem:
lub w końcu ...
Aktualizacja
Moje rozwiązanie działa doskonale z Uniksem, po szybkim wyszukiwaniu w Google , oto rozwiązanie Windows:
To samo: przed twoim skryptem.
źródło
Od wersji 3.3 Python wprowadził narzędzie Launcher for Windows https://docs.python.org/3/using/windows.html#python-launcher-for-windows .
Aby móc korzystać z wielu wersji Pythona:
źródło
py -3 filename.py
.Używam 2.5, 2.6 i 3.0 z powłoki z jednowierszowymi skryptami wsadowymi w postaci:
Nazwij je
pythonX.Y.bat
i umieść gdzieś w swojej ŚCIEŻCE. Skopiuj plik preferowanej wersji pomocniczej (tj. Najnowszej) dopythonX.bat
. (Npcopy python2.6.bat python2.bat
.) Wtedy możesz używaćpython2 file.py
z dowolnego miejsca.Jednak to nie pomaga, a nawet nie wpływa na sytuację skojarzeń plików w systemie Windows. W tym celu potrzebujesz programu uruchamiającego, który odczytuje
#!
linię, a następnie kojarzy ją z plikami .py i .pyw.źródło
Po dodaniu zarówno do zmiennych środowiskowych nie będzie a będzie konflikt, ponieważ dwa wykonywalne mają taką samą nazwę:
python.exe
.Po prostu zmień nazwę jednego z nich. W moim przypadku zmieniłem nazwę na
python3.exe
.Więc kiedy uruchomię
python
, wykona,python.exe
co wynosi 2,7, a kiedy uruchomiępython3
, wykona,python3.exe
co wynosi 3,6źródło
Fatal error in launcher: Unable to create process using '"c:\users\<my_username>\appdata\local\programs\python\python37-32\python.exe" "C:\Users\<my_username>\AppData\Local\Programs\Python\Python37-32\Scripts\pip.exe" '
.Proszę bardzo...
winpylaunch.py
Właśnie podniosłem to po przeczytaniu tego wątku (ponieważ tego też potrzebowałem). Mam Pythona 2.6.1 i 3.0.1 zarówno na Ubuntu, jak i Windows. Jeśli to nie zadziała, opublikuj poprawki tutaj.
źródło
sys.exit(process.returncode)
do propagowania statusu wyjścia wywoływanego skryptu do wywołującego.O ile wiem, Python uruchamia się z wiersza poleceń przy użyciu zmiennej PATH w przeciwieństwie do ustawienia rejestru.
Więc jeśli wskażesz poprawną wersję na swojej PATH, użyjesz tego. Pamiętaj, aby ponownie uruchomić wiersz polecenia, aby użyć nowych ustawień PATH.
źródło
Instalacja Pythona zazwyczaj kojarzy
.py
,.pyw
a.pyc
pliki z interpretera Pythona. Możesz więc uruchomić skrypt Pythona, klikając go dwukrotnie w Eksploratorze lub wpisując jego nazwę w oknie wiersza poleceń (więc nie musisz pisaćpython scriptname.py
, po prostuscriptname.py
zrobi).Jeśli chcesz ręcznie zmienić to skojarzenie, możesz edytować te klucze w rejestrze systemu Windows:
Python Launcher
Ludzie pracowali nad programem uruchamiającym Python dla systemu Windows: lekkim programem skojarzonym z plikami
.py
i.pyw
, które szukałyby linii „shebang” (podobnie jak w Linuksie i in.) W pierwszym wierszu i uruchamiały Python 2.x lub 3.x jako wymagany. Szczegółowe informacje można znaleźć w poście na blogu „A Python Launcher for Windows” .źródło
Spróbuj użyć Anacondy.
Korzystając z koncepcji środowisk Anaconda, powiedzmy, że potrzebujesz Pythona 3 do nauki programowania, ale nie chcesz wymazać środowiska Python 2.7 poprzez aktualizację Pythona. Możesz utworzyć i aktywować nowe środowisko o nazwie „węże” (lub cokolwiek chcesz) i zainstalować najnowszą wersję Pythona 3 w następujący sposób:
To prostsze niż się wydaje, spójrz na stronę wprowadzającą tutaj: Pierwsze kroki z Anacondą
A następnie, aby poradzić sobie z konkretnym problemem związanym z uruchomieniem wersji 2.x i 3.x obok siebie, zobacz: Zarządzanie wersjami Pythona za pomocą Anacondy
źródło
Oto jak uruchomić Python 2 i 3 na tym samym komputerze
Python Launcher dla Windows został osadzony w Pythonie od wersji 3.3, jak obiecał w 2011 roku, kiedy sam Stand pierwszy zadebiutowała:
Python Launcher dla Windows
źródło
Oto schludny i przejrzysty sposób instalacji Python2 i Python3 w systemie Windows.
https://datascience.com.co/how-to-install-python-2-7-and-3-6-in-windows-10-add-python-path-281e7eae62a
Mój przypadek: musiałem zainstalować cassandra Apache. Miałem już Python3 zainstalowany w moim D: dysk . Z mnóstwem prac programistycznych w trakcie, nie chciałem zepsuć mojej instalacji Python3. Potrzebowałem Pythona2 tylko dla Apache cassandra.
Więc podjąłem następujące kroki:
C:\Python27;C:\Python27\Scripts
)python2 --version
) i Python 3 (python --version
).Tak więc moja instalacja Python3 pozostała nienaruszona.
źródło
Myślę, że w instalatorze istnieje opcja skonfigurowania skojarzenia plików systemu Windows dla plików .py. Odznacz to i powinno być dobrze.
Jeśli nie, możesz łatwo ponownie powiązać pliki .py z poprzednią wersją. Najprostszym sposobem jest kliknięcie prawym przyciskiem myszy na pliku .py i wybranie opcji „otwórz za pomocą” / „wybierz program”. W wyświetlonym oknie dialogowym wybierz lub przejdź do wersji języka Python, której chcesz używać domyślnie, i zaznacz pole wyboru „Zawsze używaj tego programu do otwierania tego rodzaju plików”.
źródło
Powinieneś upewnić się, że zmienna środowiskowa PATH nie zawiera obu plików python.exe (dodaj ten, z którego obecnie korzystasz do codziennego uruchamiania skryptów), ani postępuj zgodnie z sugestią Kniht z plikami wsadowymi. Poza tym nie rozumiem, dlaczego nie.
PS: Mam zainstalowany 2.6 jako mój „podstawowy” Python i 3.0 jako mój „Play” Python. 2.6 jest zawarty w PATH . Wszystko dziala .
źródło
Zanim odważnie zainstalowałem oba jednocześnie, miałem tyle pytań. Jeśli podam Pythona, czy przejdzie do py3, gdy chcę py2? pip / virtualenv będzie się działo pod py2 / 3?
Teraz wydaje się to bardzo proste.
Po prostu ślepo zainstaluj oba z nich. Upewnij się, że masz odpowiedni typ (x64 / x32). Podczas / po instalacji upewnij się, że dodajesz do ścieżki do zmiennych środowiskowych .
Zastąp x w powyższym poleceniu, aby ustawić ścieżkę.
Następnie przejdź do obu folderów.
Nawigować do
i zmień nazwę pip na pip3.
Jeśli pip3 już istnieje, usuń plik pip. Zapewni to, że po prostu pip będzie działał pod python2 . Możesz zweryfikować:
Jeśli chcesz używać pip z python3, po prostu użyj
Możesz podobnie zrobić to samo z plikiem Pythona i innymi.
Twoje zdrowie!
źródło
Łatwo, po zainstalowaniu obu wersji Pythona dodaj ścieżki do zmiennych środowiskowych; patrz . Następnie przejdź do folderów python 2 i python 3 i zmień ich nazwy odpowiednio na python2 i python3, jak pokazano i . Teraz w cmd wpisz python2 lub python3, aby użyć wymaganej wersji, patrz .
źródło
Tak przypuszczam, mam Pythona 2.4, 2.5 i 2.6 zainstalowane obok siebie na tym samym komputerze.
źródło
Właśnie zaczynam od Pythona. Czytam książkę Zeda Shawa „Learn Python the Hard Way”, która wymaga języka Python w wersji 2.x, ale biorę też udział w zajęciach, które wymagają języka Python 3.x
Więc oto co zrobiłem.
„[ŚRODOWISKO] :: SETENVIRONMENTVARIABLE („ PATH ”,„ $ ENV: PATH; C: \ PYTHON27 ”,„ USER ”)” (bez zewnętrznych cudzysłowów)
TERAZ dla Pythona 3.x
Proste pobieranie pythona 3.x jest dostarczane z aplikacją Python dla systemu Windows. Więc po prostu przypnij aplikację Python for Windows do paska zadań lub utwórz skrót do pulpitu i gotowe!
Otwórz Python dla Windows dla 3.x
Otwórz program Powershell dla języka Python 2.x
Mam nadzieję, że to pomoże!
źródło
Hmm… Zrobiłem to teraz, pobierając Python 3.6.5 dla Windows ze strony https://www.python.org/downloads/release/python-365/ i upewniając się, że program uruchamiający zostanie zainstalowany. Następnie postępowałem zgodnie z instrukcjami dotyczącymi używania Pythona 2 i Pythona 3. Uruchom ponownie wiersz poleceń, a następnie użyj,
py -2.7
aby użyć Pythona 2 ipy
lub,py -3.6
aby użyć Pythona 3. Można również użyćpip2
dla Pythona 2pip
ipip
Pythona 3pip
.źródło
Miałem ten sam problem, w którym chciałem używać python3 do większości prac, ale IDA pro wymagało python2. WIĘC, oto co zrobiłem.
Najpierw utworzyłem 3 zmienne w zmiennej środowiskowej użytkownika w następujący sposób:
Teraz dodałem
do zmiennej PATH. Więc mówiąc w zasadzie, że cokolwiek zawiera ten "PYTHON_ACTIVE" jest aktywnym Pythonem. Programowo zmieniamy zawartość „PYTHON_ACTIVE”, aby zmienić wersję Pythona.
Oto przykładowy skrypt:
Ten skrypt przyjmuje wersję Pythona jako dane wejściowe i odpowiednio kopiuje HOME_PYTHON27 lub HOME_PYTHON38 do PYTHON_ACTIVE. Zmieniając w ten sposób globalną wersję Pythona.
źródło