Miałem dwie wersje Pythona zainstalowane na moim komputerze (wersje 2.6 i 2.5). Chcę uruchomić 2.6 dla jednego projektu i 2.5 dla innego.
Jak mogę określić, którego chcę użyć?
Pracuję na Windows XP SP2.
Miałem dwie wersje Pythona zainstalowane na moim komputerze (wersje 2.6 i 2.5). Chcę uruchomić 2.6 dla jednego projektu i 2.5 dla innego.
Jak mogę określić, którego chcę użyć?
Pracuję na Windows XP SP2.
Odpowiedzi:
Uruchomienie innej kopii Pythona jest tak proste, jak uruchomienie odpowiedniego pliku wykonywalnego. Wspomniałeś, że uruchomiłeś instancję Pythona z wiersza poleceń, po prostu wpisując python
.
To, co robi w systemie Windows, polega na przeszukaniu %PATH%
zmiennej środowiskowej, sprawdzeniu pliku wykonywalnego, albo pliku wsadowego ( .bat
), pliku poleceń ( .cmd
), albo innego pliku wykonywalnego do uruchomienia (jest to kontrolowane przez PATHEXT
zmienną środowiskową), który pasuje do podanej nazwy. Kiedy znajdzie właściwy plik do uruchomienia, plik jest uruchamiany.
Teraz, jeśli zainstalowałeś dwie wersje Pythona 2.5 i 2.6, ścieżka będzie zawierała oba swoje katalogi, coś w rodzaju PATH=c:\python\2.5;c:\python\2.6
ale Windows przestanie badać ścieżkę, gdy znajdzie dopasowanie.
To, co naprawdę musisz zrobić, to jawnie wywołać jedną lub obie aplikacje, takie jak c:\python\2.5\python.exe
lub c:\python\2.6\python.exe
.
Inną alternatywą jest utworzenie skrótu do odpowiedniego python.exe
wywołania jednego z nich python25
i drugiego python26
; możesz wtedy po prostu uruchomić python25
z linii poleceń.
Dodanie dwóch kolejnych rozwiązań problemu:
#! c:\[path to Python 2.5]\python.exe
- dla skryptów, które mają być uruchamiane w Pythonie 2.5
#! c:\[path to Python 2.6]\python.exe
- dla skryptów, które mają być uruchamiane w Pythonie 2.6
lub zamiast uruchamiać python
polecenie, uruchom polecenie pylauncher ( py
) określające, którą wersję Pythona chcesz;
py -2.6
- wersja 2.6
py -2
- najnowsza zainstalowana wersja 2.x
py -3.4
- wersja 3.4
py -3
- najnowsza zainstalowana wersja 3.x
virtualenv -p c:\[path to Python 2.5]\python.exe [path where you want to have virtualenv using Python 2.5 created]\[name of virtualenv]
virtualenv -p c:\[path to Python 2.6]\python.exe [path where you want to have virtualenv using Python 2.6 created]\[name of virtualenv]
na przykład
virtualenv -p c:\python2.5\python.exe c:\venvs\2.5
virtualenv -p c:\python2.6\python.exe c:\venvs\2.6
wtedy możesz aktywować pierwszy i pracować z Pythonem 2.5 w ten sposób,
c:\venvs\2.5\activate
a kiedy chcesz przejść na Python 2.6, musisz to zrobić
deactivate
c:\venvs\2.6\activate
c:\venvs\2.5\scripts\activate
. : . To jest w systemie Windows 10, jeśli to robi różnicę. Poza tym działa jak urok, dzięki.
Począwszy od Pythona 3.3 dostępny jest oficjalny program uruchamiający Python dla systemu Windows ( http://www.python.org/dev/peps/pep-0397/ ). Teraz możesz użyć #!pythonX
do określenia pożądanej wersji interpretera również w systemie Windows. Zobacz więcej szczegółów w moim innym komentarzu lub przeczytaj PEP 397.
Podsumowanie: W py script.py
uruchamia wersję Pythona Podane w #!
lub Pythonie 2, jeśli #!
brakuje. Do py -3 script.py
uruchamia Python 3.
.py
rozszerzeniem. Sam program uruchamiający jest zainstalowany w C:\Windows
tym, że jest już w PATH
. W ten sposób również PATH
zmienna nie musi być modyfikowana.
Zgodnie z @alexander możesz utworzyć zestaw dowiązań symbolicznych, jak poniżej. Umieść je w miejscu, które jest zawarte w twojej ścieżce, aby można je było łatwo przywołać
> cd c:\bin
> mklink python25.exe c:\python25\python.exe
> mklink python26.exe c:\python26\python.exe
Tak długo, jak c: \ bin lub miejsce, w którym je umieściłeś, jest na twojej ścieżce, możesz teraz iść
> python25
mklink
jest natywnie dostępna tylko w systemie Windows Vista / 2008 +. W systemach XP i Server 2003 zamiast tego można utworzyć „twarde łącze”, używając fsutil hardlink create <new filename> <existing filename>
i umieszczając lub przenosząc <nazwa nowego pliku> w inne miejsce na ścieżce. Jednak łącza twarde działają tylko na tym samym dysku.
zainstaluj python
Zmienna środowiskowa
PYTHON2_HOME: C:\Python27
PYTHON3_HOME: C:\Python36
Path: %PYTHON2_HOME%;%PYTHON2_HOME%\Scripts;%PYTHON3_HOME%;%PYTHON3_HOME%\Scripts;
zmiana nazwy pliku
pypeć
python2 -m pip install package
python3 -m pip install package
python
polecenie byłoby mylące dla systemu operacyjnego.
Na przykład dla wersji 3.6 py -3.6
. Jeśli masz również wersje 32-bitową i 64-bitową, możesz po prostu wpisać py -3.6-64
lub py -3.6-32
.
py
uzupełnić odpowiedź o więcej wyjaśnień - gdzie jest ten plik wykonywalny - czy jest to dodatek tylko do systemu Windows? Czy można to włączyć do wieloplatformowego skryptu wiersza poleceń, który ma na górze: #!/usr/bin/env python3
na przykład?
Po zainstalowaniu Pythona nie zastąpi on innych instalacji innych głównych wersji. Zatem zainstalowanie Pythona 2.5.x nie nadpisze Pythona 2.6.x, chociaż zainstalowanie 2.6.6 nadpisze 2.6.5.
Możesz więc po prostu go zainstalować. Następnie wywołujesz żądaną wersję Pythona. Na przykład:
C:\Python2.5\Python.exe
dla Pythona 2.5 w systemie Windows i
C:\Python2.6\Python.exe
dla Pythona 2.6 w systemie Windows lub
/usr/local/bin/python-2.5
lub
/usr/local/bin/python-2.6
w systemie Windows Unix (w tym Linux i OS X).
Podczas instalacji w systemie Unix (w tym Linux i OS X) zostanie python
zainstalowane ogólne polecenie, które będzie ostatnim zainstalowanym. W większości przypadków nie stanowi to problemu, ponieważ większość skryptów wywołuje bezpośrednio /usr/local/bin/python2.5 lub coś tylko po to, aby się przed tym chronić. Ale jeśli nie chcesz tego robić i prawdopodobnie nie możesz, możesz zainstalować to w następujący sposób:
./configure
make
sudo make altinstall
Zwróć uwagę na „altinstall”, co oznacza, że zainstaluje go, ale nie zastąpi python
polecenia.
W systemie Windows nie dostajesz globalnego python
polecenia, o ile wiem, więc nie stanowi to problemu.
C:\Python2.5
lub C:\Python2.6
pojawi się w PATH
zmiennej środowiskowej, odpowiednia wersja Pythona stanie się domyślną, chyba że zastąpisz ją, wyraźnie określając inną ścieżkę do pliku .exe, którego chcesz użyć.
Gorąco polecam projekt pyenv-win .
Dzięki pracy kirankotari mamy teraz wersję pyenv dla systemu Windows.
Oto szybki hack:
C:\Users\Your name
)name_of_your_shortcut.lnk
(używam p27.lnk
)cp c: \ python27 \ bin \ python.exe jako python2.7.exe
cp c: \ python34 \ bin \ python.exe jako python3.4.exe
wszystkie znajdują się w ścieżce systemowej, wybierz wersję, którą chcesz uruchomić
C:\Users\username>python2.7
Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>>
C:\Users\username>python3.4
Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:38:22) [MSC v.1600 32 bit Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Używanie pliku wsadowego do przełączania, łatwe i wydajne w systemie Windows 7. Używam tego:
W oknie dialogowym zmiennych środowiskowych (C: \ Windows \ System32 \ SystemPropertiesAdvanced.exe)
W sekcji zmienne użytkownika
dodano% pathpython% do zmiennej środowiskowej path
usunięto wszelkie odniesienia do ścieżek Pythona
W sekcji zmienne systemowe
Utworzyłem pliki wsadowe dla każdej instalacji Pythona (np. Dla 3.4 x64
Name = SetPathPython34x64 !!! ToExecuteAsAdmin.bat ;-) tylko do zapamiętania.
Zawartość pliku =
Set PathPython=C:\Python36AMD64\Scripts\;C:\Python36AMD64\;C:\Tcl\bin
setx PathPython %PathPython%
Aby przełączać się między wersjami, wykonuję plik wsadowy w trybie administratora.
!!!!! Zmiany będą obowiązywać dla okien wiersza polecenia KOLEJNE OTWARTE. !!!
Więc mam nad tym dokładną kontrolę.
Najłatwiejszy sposób uruchamiania wielu wersji Pythona w systemie Windows jest opisany poniżej w następujący sposób: -
1) Pobierz najnowsze wersje Pythona z python.org/downloads , wybierając odpowiednią wersję dla swojego systemu.
2) Uruchom instalator i wybierz Dodaj python 3.x do ścieżki, aby automatycznie ustawić ścieżkę w pythonie 3 (wystarczy kliknąć pole wyboru). W przypadku pythona 2 otwórz instalator pythona 2, wybierz dowolne preferencje, ale pamiętaj tylko, aby ustawić opcję Dodaj python.exe do ścieżki na Zostanie zainstalowany na lokalnym dysku twardym.Teraz kliknij przycisk Dalej i poczekaj, aż instalator się zakończy.
3) Po zakończeniu obu instalacji. Kliknij prawym przyciskiem myszy na moim komputerze - Przejdź do właściwości - Wybierz zaawansowane ustawienia systemu - Przejdź do zmiennych środowiskowych - Kliknij nową w obszarze Zmienne systemowe i dodaj nową zmienną systemową o nazwie zmiennej jako PY_PYTHON i ustaw wartość tej zmiennej na 3 . Teraz kliknij OK i gotowe.
4) Teraz, aby to przetestować, otwórz wiersz polecenia . Gdy już tam będziesz, wpisz python lub py , powinno to otworzyć python3 .
5) Teraz wyjdź z python3, wpisując exit () . Teraz wpisz py -2 , powinno otworzyć się python 2.
Jeśli nic z tego nie zadziała, uruchom ponownie komputer, a jeśli problem nadal występuje, odinstaluj wszystko i powtórz kroki.
Dzięki.
W programie Anaconda Navigator można graficznie tworzyć różne środowiska programistyczne języka Python. Miałem ten sam problem podczas pracy z różnymi wersjami Pythona, więc użyłem nawigatora anaconda do stworzenia różnych środowisk programistycznych Pythona i użyłem różnych wersji Pythona w każdym środowisku.
Oto dokumentacja pomocy do tego.
https://docs.anaconda.com/anaconda/navigator/tutorials/manage-environments/
Używając Rapid Environment Editor , możesz wypchnąć na górę katalog żądanej instalacji Pythona. Na przykład, aby uruchomić język Python z katalogu c: \ Python27, upewnij się, że katalog c: \ Python27 znajduje się przed katalogiem c: \ Python36 lub nad nim w zmiennej środowiskowej Path. Z mojego doświadczenia wynika, że pierwszy plik wykonywalny Pythona znaleziony w środowisku Path jest wykonywany. Na przykład mam zainstalowany MSYS2 z Python27 i ponieważ dodałem C: \ MSYS2 do ścieżki przed C: \ Python36, python.exe z folderu C: \ MSYS2 .... jest wykonywany.
Po prostu wywołaj właściwy plik wykonywalny
python
wchodzić do powłoki spróbuj python2.5
lub python2.6
. Nie jestem użytkownikiem Windows, ale na UNIX / usr / bin / python jest zwykle aliasem do wykwalifikowanego wykonywalnego, jestem przy założeniu, pyton w Windows jest zainstalowany w podobny sposób