Windows'da birden çok Python sürümü nasıl çalıştırılır


170

Makineme iki Python sürümü yükledim (2.6 ve 2.5 sürümleri). Bir proje için 2.6, diğeri için 2.5 çalıştırmak istiyorum.

Hangisini kullanmak istediğimi nasıl belirleyebilirim?

Windows XP SP2 üzerinde çalışıyorum.


3
Soru sormak için iyi ipuçları neyi denediğinizi ve bunun nasıl başarısız olduğunu açıklamaktır. Peki: Ne denediniz ve bu hangi şekilde işe yaramadı?
Lennart Regebro

Not, Windows'da bunun hakkında daha önce soru bulamadım, bu yüzden başlığı yansıtacak şekilde değiştirdim.
Lennart Regebro


3.3'ü 2.7 ile birlikte çalıştırmak istiyorsanız, bu en standart cevaptır: - stackoverflow.com/questions/15912063/…
Omar Tariq

Yanıtlar:


135

Python'un farklı bir kopyasını çalıştırmak, doğru yürütülebilir dosyayı başlatmak kadar kolaydır. Komut satırından yazarak bir python örneği başlattığınızdan bahsediyorsunuz python.

Bunun Windows altında yaptığı, verilen adla eşleşen %PATH%yürütülebilir bir dosya ( .bat), toplu iş dosyası ( ), komut dosyası ( .cmd) veya çalıştırılacak başka bir yürütülebilir dosyayı ( PATHEXTçevre değişkeni tarafından kontrol edilir ) kontrol ederek ortam değişkenini trol etmektir . Çalıştırmak için doğru dosyayı bulduğunda çalıştırılıyor.

Şimdi, iki python sürüm 2.5 ve 2.6 yüklediyseniz, yolun her iki dizini de içinde olacaktır, PATH=c:\python\2.5;c:\python\2.6ancak böyle bir şey, ancak Windows bir eşleşme bulduğunda yolu incelemeyi durduracaktır.

Ne gerçekten yapmak gerekir açıkça gibi uygulamalardan birini veya her ikisini çağırmaktır c:\python\2.5\python.exeveya c:\python\2.6\python.exe.

Diğer alternatif, python.exebunlardan birini python25ve diğerini çağıran ilgili bir kısayol oluşturmaktır python26; daha sonra python25komut satırınızda çalıştırabilirsiniz .


41
bu kısayol nasıl oluşturulur
Bilal Basharat

8
Windows'tayken, kısayol oluşturmak istediğiniz python sürümünü içeren klasöre gidin, ardından sağ tıklayın ve kısayol oluşturun. Daha sonra yeniden adlandırabilirsiniz.
aodj

3
Uzun ölü bir yazı kazdığımız için üzgünüm, ancak .lnk uzantısına ihtiyaç duymadan kısayolu nasıl çalıştıracaksınız?
Nathan Tornquist

7
Bir kısayol çalışmazsa, @FJ'nin söylediği gibi yapabilir ve kopyalayıp yeniden adlandırabilirsiniz. Bunu yapmazsanız, komut satırında '' mklink '' kullanarak sembolik bir bağlantı yapabilirsiniz.
aodj

7
En iyi yol, python25 ve python26 adlı bir yarasa dosyası oluşturmak ve bunları uygun sürümü çağırmak olmaz mı? Sonra tek yapmanız gereken bu 2 yarasa dosyasını ikili dosyalarının yanına koymak.
Jeremy Cantrell

100

Soruna iki çözüm daha eklemek:

  • Pylauncher kullanın (Python 3.3 veya daha yenisi varsa , Python ile birlikte geldiği gibi yüklemeye gerek yoktur ) ve komut dosyalarınıza shebang satırları ekleyin;

#! c:\[path to Python 2.5]\python.exe- Python 2.5
#! c:\[path to Python 2.6]\python.exeile çalıştırmak istediğiniz komut dosyaları için - Python 2.6 ile çalıştırmak istediğiniz komut dosyaları için

veya hangi Python sürümünü istediğinizi belirterek pythonrun run pylauncher command ( py) komutunu çalıştırmak yerine ;

py -2.6- sürüm 2.6
py -2- en son yüklü sürüm 2.x
py -3.4- sürüm 3.4
py -3- en son yüklü sürüm 3.x

  • Virtualenv yükleyin ve iki sanalenv oluşturun;

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]

Örneğin

virtualenv -p c:\python2.5\python.exe c:\venvs\2.5

virtualenv -p c:\python2.6\python.exe c:\venvs\2.6

o zaman ilkini etkinleştirebilir ve Python 2.5 ile böyle çalışabilirsiniz
c:\venvs\2.5\activate
ve Python 2.6'ya geçmek istediğinizde

deactivate  
c:\venvs\2.6\activate

pylauncher , 2011 yılında Standartlar Yolu olarak kabul edilen PEP 397'nin bir prototip uygulaması gibi görünüyor. Başlatıcı neden Windows için Python ile hala dağıtılmıyor veya neden hala sadece Vinay Sajip'in prototip uygulaması olduğunu biliyor musunuz?
martineau

4
Pylauncher, 3.3 sürümünden başlayarak Python ile dağıtılmaktadır - bkz. Python.org/download/releases/3.3.0 . Ayrıca Vinay Sajip'in uygulanmasının sadece bir prototip değil uygulama olduğunu düşünüyorum.
Piotr Dobrogost

1
Açıklama için teşekkürler. IMHO pylauncher, en son Python 2 sürümünün bir parçası olarak da dağıtılmalıdır, çünkü bu sürümü kullanan kişiler birden çok sürüm yüklemek isteyenler için daha olasıdır (ve işlevselliğinin ve kullanılabilirliğinden haberdar olmaları daha olasıdır).
martineau

StackOverflow birden fazla oy almanıza izin vermelidir, cevabınız sonsuz yukarı oyları hak ediyor! Cidden neredeydin kardeşim! : D Basit, anlaşılır ve elbette çalışıyor!
3bdalla

Çok iyi öneriler. Ben ikinci (virtualenv) birini kullandım. Bulduğum tek fark ben mesela activate yolundaki '\ komut' içermek zorunda idi: c:\venvs\2.5\scripts\activate. Bu bir fark yaratırsa Windows 10'dadır. Bunun dışında bir cazibe gibi çalışıyor, teşekkürler.
Dave Marley

53

Python 3.3'ten itibaren, Windows için resmi Python başlatıcısı var ( http://www.python.org/dev/peps/pep-0397/ ). Şimdi, #!pythonXyorumlayıcının istenen sürümünü Windows'ta da belirlemek için kullanabilirsiniz . Daha fazla ayrıntı göster benim başka yorumunda veya PEP 397 okuyun.

Özet: Belirtilen py script.pyPython sürümünü #!veya #!eksikse Python 2'yi başlatır . py -3 script.pyLansmanlar Python 3.


1
Aradığım cevap bu. Windows 10'u Python 2.7 ve Python 3.4.3 ile çalıştırıyorum. Komut istemine "py [python_version_number]" yazın ex: py -3 veya py sahip olduğunuz python sürümünü çağırır. Bunu kullanmadan önce ortam değişkenlerinin ayarlanması gerektiğini düşünüyorum. bu benim için uygun.
CodeMonkey

2
@Inuka: Herhangi bir ortam değişkeninin ayarlanmasına gerek yoktur. Python yükleyicisi, .pyuzantıyla ilişkilendirmeleri ayarlar . Başlatıcı kendisi C:\Windowszaten içinde yüklü PATH. Bu şekilde, PATHdeğişkenin de değiştirilmesine gerek yoktur.
pepr

2
Cevap arkadaşın için çok teşekkürler. Bu şekilde pip'i de çağırabiliriz. py -2 -m pip install SomePackage veya py -3.4.3 -m pip install SomePackage
CodeMonkey

Bence bu en basit ve sorunsuz çözüm.
prasad

46

@Alexander'a göre aşağıdaki gibi bir dizi sembolik bağlantı yapabilirsiniz. Onları yolunuza dahil olan bir yere koyun, böylece kolayca çağrılabilirler

> cd c:\bin
> mklink python25.exe c:\python25\python.exe
> mklink python26.exe c:\python26\python.exe

C: \ bin veya onları yerleştirdiğiniz her yerde yolunuzda olduğu sürece, artık

> python25

4
Zekice fikir. BTW mklinkyalnızca yerel olarak Windows Vista / 2008 + 'da kullanılabilir. XP ve Server 2003'te fsutil hardlink create <new filename> <existing filename>, <yeni dosya adını> kullanarak veya yolunuzdaki bir yere koymak veya taşımak yerine "sabit bağlantı" oluşturulabilir . Ancak, sabit bağlantılar yalnızca aynı sürücüde çalışır.
martineau

Bu iyi bir çözüm, NTFS tabanlı bir dosya sistemi olmadan da çalıştığından emin değilim.
meawoppl

Evet, Vista'da tanıtıldığına inandığım NTFS sembolik bağlantıları için destek gerekiyor (yanlış olabilir). XP'de kullanım için farklı bir sürücü kullanılması gerekir . Genel sürümden önce bir aşamada kapatılmış gibi görünüyor.
Christopher Hackett

en kolay çözüm
giantas

15
  1. python yükle

    • C: \ Python27
    • C: \ Python36
  2. Çevre değişkeni

    • PYTHON2_HOME: C:\Python27
    • PYTHON3_HOME: C:\Python36
    • Path: %PYTHON2_HOME%;%PYTHON2_HOME%\Scripts;%PYTHON3_HOME%;%PYTHON3_HOME%\Scripts;
  3. dosya yeniden adlandırma

    • C: \ Python27 \ python.exe → C: \ Python27 \ python2.exe
    • C: \ Python36 \ python.exe → C: \ Python36 \ python3.exe
  4. bip

    • python2 -m pip install package
    • python3 -m pip install package

Bence bu az çok soru için pratik çözüm. Bu, python komut dosyasını çağırmak için kısayol / sembolik bağlantının kullanıldığı yaklaşıma kıyasla daha kullanışlıdır. Dosyayı yeniden adlandırmak yerine, ikili dosyayı (python.exe) kopyalayıp yapıştırabilir ve ardından sürümüne göre yeniden adlandırabiliriz (bu cevapta gösterildiği gibi). Bu arada, pythonkomut OS için kafa karıştırıcı olurdu.
testuser

Mükemmel cevap! Teşekkürler ~ @ 山 茶树 和 葡萄 树
Bright Chang

14

Örneğin 3.6 sürüm türü için py -3.6. Ayrıca 32bit ve 64bit sürümleriniz varsa py -3.6-64veya yazabilirsiniz py -3.6-32.


3
Bu Kabul Edilen Cevap olmalı! Bir ton teşekkürler!
Xonshiz

3
Bu muhtemelen en iyi yanıttır, çünkü dosyaların yeniden adlandırılmasını gerektirmez ve üçüncü taraf IDE'leri her ikisini de normal olarak algılar!
Enchant97

cevabı daha fazla açıklama ile geliştirebilir misiniz - bu pyyürütülebilir dosya - bu sadece bir pencere eklentisi mi? Bunu, en üstte bulunan bir platformlar arası komut satırı komut dosyasına dahil etmek mümkün mü: #!/usr/bin/env python3örneğin?
Ed Randall

7

Python'u yüklediğinizde, diğer büyük sürümlerin diğer yüklemelerinin üzerine yazılmaz. Bu nedenle, 2.6.6 yüklendiğinde 2.6.5'in üzerine yazılmasına rağmen Python 2.5.x'in yüklenmesi Python 2.6.x'in üzerine yazılmaz.

Böylece sadece yükleyebilirsiniz. Sonra istediğiniz Python sürümünü çağırırsınız. Örneğin:

C:\Python2.5\Python.exe

Python 2.5 için pencerelerde ve

C:\Python2.6\Python.exe

Windows'da Python 2.6 için veya

/usr/local/bin/python-2.5

veya

/usr/local/bin/python-2.6

üzerinde , Windows (Linux ve OS X dahil) Unix.

Unix'e (Linux ve OS X dahil) pythonyüklediğinizde, yüklediğiniz son komut olan genel bir komut alırsınız . Çoğu komut dosyası açıkça /usr/local/bin/python2.5 veya sadece buna karşı korumak için bir şey çağıracağı için bu çoğunlukla sorun değildir. Ancak bunu yapmak istemiyorsanız ve muhtemelen böyle yükleyemezseniz:

./configure
make
sudo make altinstall

"Altinstall" bunu kuracak araçlar Not ama olacak değil değiştirinpython komutunu.

Windows'da pythonbildiğim kadarıyla global bir komut almıyorsunuz, bu bir sorun değil.


ure yardım için teşekkürler plz ayrıca ikinci soruma cevap: her ikisini de nasıl çalıştırabilirim? başarılı bir şekilde 2.5'ten 2.6'ya
geçtim

@Bilal Basharat: İki şeyi aynı anda çalıştırmak istiyorsanız, Windows çok görevli bir işletim sistemidir, her ikisine de başlıyorsunuz, bu yüzden sorunuzu anlamıyorum.
Lennart Regebro

şu anda python2.5 üzerinde çalışıyorum. basitçe bana nasıl 2.6 da çalıştırabilirim? Python kabuğuna girmek için Windows komut isteminde 'python' yazdığımda python2.5 görünür. c sürücüsünde yüklü her iki sürümü vardı. C: \ Python2.6 \ Python.exe dosyasına gittiğimde. geçici olarak etkinleştirildi. C: \ Python2.6 \ 'dan ayrılır ayrılmaz tekrar 2.5 sürümüne dönüştü
Bilal Basharat

3
@Bilal Basharat: Bunu zaten cevapladım. "Geçici olarak etkinleştirilmez". Python 2.6'yı C: \ Python2.6 \ Python.exe komutuyla çalıştırdınız ve bu şekilde çalıştırıyorsunuz. Python 2.5'i C: \ Python2.5 \ Python.exe komutuyla çalıştırırsınız. İkisini de aynı anda koşuyorsun.
Lennart Regebro

1
@Bilal Basharat: Ortam değişkeninizde C:\Python2.5veya C:\Python2.6dizini görünürse, kullanmak istediğiniz .exe'ye açıkça farklı bir yol belirterek geçersiz kılmadıkçaPATH Python'un karşılık gelen sürümü varsayılan olur .
martineau


5

İşte hızlı bir kesmek:

  1. Çalıştırmak istediğiniz python sürümünün dizinine gidin
  2. Python.exe dosyasına sağ tıklayın
  3. 'Seçeneğini Kısayol Oluştur '
  4. Bu kısayola arayabileceğiniz bir ad verin (p27, p33 vb. Kullanıyorum)
  5. Bu kısayolu ana dizininize taşıyın (C:\Users\Your name )
  6. Bir komut istemi açın ve girin name_of_your_shortcut.lnk(kullanıyorum p27.lnk)

1

cp c: \ python27 \ bin \ python.exe olarak python2.7.exe

cp c: \ python34 \ bin \ python.exe olarak python3.4.exe

hepsi sistem yolunda, çalıştırmak istediğiniz sürümü seçin

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.
>>>

bu benim için çalıştı. Cp yerine kopya kullanmanız yeterlidir. Ayrıca bu komutu çalıştırırken yolda bir yerde olmalısınız ve her iki python yüklemesi de örn. C: \ python34 \ bin \ python.exe ve c: \ python27 \ bin \ python.exe'nin de yolda olması gerekir. (tercihen bu sırayla).
Gregor Schmitz

1

Windows 7'de kolay ve verimli geçiş yapmak için bir toplu iş dosyası kullanma Bunu kullanıyorum:

Ortam değişkeni iletişim kutusunda (C: \ Windows \ System32 \ SystemPropertiesAdvanced.exe),

Kullanıcı değişkenleri bölümünde

  1. yol ortamı değişkenine% pathpython% ekledi

  2. python yollarına yapılan tüm referanslar kaldırıldı

Bölümünde sistem değişkenleri

  1. python yollarına yapılan tüm referanslar kaldırıldı

Her python yüklemesi için toplu iş dosyaları oluşturdum (3.4 x64 için örnek)

Name = SetPathPython34x64 !!! ToExecuteAsAdmin.bat ;-) sadece hatırlamak için.

Dosyanın içeriği =

     Set PathPython=C:\Python36AMD64\Scripts\;C:\Python36AMD64\;C:\Tcl\bin

     setx PathPython %PathPython%

Sürümler arasında geçiş yapmak için toplu iş dosyasını yönetici modunda yürütüyorum.

!!!!! Değişiklikler AÇILAN SUBSEQUENT komut istemi pencereleri için geçerlidir. !!!

Yani tam kontrolüm var.


0

Python'un birden fazla sürümünü pencerelerde çalıştırmanın en kolay yolu aşağıda açıklanmıştır: -

1) en son sürümlerini indirin piton gelen python.org/downloads Sisteminiz için uygun sürümü seçerek.

2) Yükleyiciyi çalıştırın ve python 3'te yolu otomatik olarak ayarlamak için Yola python 3.x ekle'yi seçin (onay kutusunu tıklatmanız yeterlidir). Senin piton 2 yükleyici kadar piton 2 açık için, ne istersen tercihleri seçmek ama sadece set hatırlamak yoluna Ekleme python.exe için yerel sabit diske yüklenecek , Şimdi hemen yanında tıklayıp bitirmek için yükleyici bekleyin.

3) Her iki kurulum da tamamlandığında. Özelliklerine Git - - Bilgisayarımda sağ tıklayın ortam değişkenleri Git - - gelişmiş sistem ayarlarını seçin Sistem değişkenleri altında yeni Tıklayın ve yeni bir ekleme sistem değişkeni ile değişken adı olarak PY_PYTHON ve bu set değişken değeri için 3 . Şimdi Tamam'a tıklayın ve işiniz bitti.

4) Şimdi bunu test etmek için komut istemini açın . Bir kez orada python veya py yazın , python3 açmalıdır .

5) Şimdi exit () yazarak python3'dan çıkın . Şimdi py -2 yazın, python 2'yi açmalıdır.

Bunların hiçbiri işe yaramazsa bilgisayarı yeniden başlatın ve sorun devam ederse her şeyi kaldırın ve adımları tekrarlayın.

Teşekkürler.



-1

Hızlı Ortam Düzenleyicisi'ni kullanarak istediğiniz Python kurulumunun dizinini yukarı itebilirsiniz. Örneğin, python'u c: \ Python27 dizininden başlatmak için, c: \ Python27 dizininin Path ortam değişkenindeki c: \ Python36 dizininden önce veya üstünde olduğundan emin olun. Deneyimlerime göre, Path ortamında bulunan ilk python yürütülebilir dosyası yürütülüyor. Örneğin, Python27 ile MSYS2 yüklü ve C: \ Python36 önce yola C: \ MSYS2 eklediğim için, C: \ MSYS2 .... klasöründen python.exe yürütülüyor.


-4

Sadece doğru çalıştırılabilir dosyayı arayın


şu anda 2.5 üzerinde çalışıyorum. basitçe bana nasıl 2.6 da çalıştırabilirim. Windows komut isteminde python kabuğu girmek için 'python' yazmak zorunda kaldı. ve 2.5. c sürücüsünde yüklü her iki sürümü vardı.
Bilal Basharat

Kabuğa pythongirmek yerine python2.5veya deneyin python2.6. Ben bir windows kullanıcısı değilim, ancak unix / usr / bin / python genellikle tam olarak yürütülebilir çalıştırılabilir bir takma
addır

1
Windows'da yürütülebilir ad her zaman python.exe'dir, ancak yürütülebilir dosyanın yolunu değiştirirsiniz. Zaten birkaç kez açıklanmıştır.
jgritty
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.