Windows'ta hem Python 2.x hem de Python 3.x nasıl yüklenir


230

Programlamamın çoğunu Windows 7'de Python 3.x'te yapıyorum, ancak şimdi Python 2.x gerektiren Python Görüntüleme Kitaplığı (PIL), ImageMagick ve wxPython kullanmam gerekiyor.

Windows 7'de hem Python 2.x hem de Python 3.x yüklü olabilir mi? Bir komut dosyasını çalıştırdığımda, Python'un hangi sürümünü çalıştırması gerektiğini nasıl seçerim? Sözü edilen programlar aynı anda kurulmuş Python'un birden fazla sürümünü işleyebilecek mi? Ben nasıl boşuna yapmak için saat ve saat aradım.

Teşekkürler.



2
Evet, @NickT'nin dediği gibi, bu en kolayı. Ne yazık ki, aşağıdaki cevapların hiçbiri basit ve anlaşılır bir yaklaşım sunmamaktadır. (Sürüm 3.3'ten bahsedenler en yakına gelir.) Daha iyi bir cevap için, yinelenen sorunun altındaki kabul edilen soruya bakın: stackoverflow.com/a/17245543/1593924 Özetle, yeni "py" başlatıcıyı, -3 parametresi. Ve komut dosyalarınıza shebangs (#!) Eklemeyi düşünün, böylece bir parametreye ihtiyacınız olmaz.
Jon Coombs

1
Ayrıca, bazıları burada gönderdiğim ayrıntıları yararlı buldu: stackoverflow.com/a/13533958/1593924
Jon Coombs

Yanıtlar:


150

Bunu yapmanın resmi yolunun aşağıdaki gibi olduğunu buldum:

Windows 7'ye Python'un iki (veya daha fazla yükleyicisini kullanarak) sürümünü yüklemeniz yeterlidir (benim için 3.3 ve 2.7 ile çalışın).

Gereksinimlerinize uygun parametreleri değiştirerek aşağıdaki talimatları izleyin.

Aşağıdaki ortam değişkenini oluşturun (çift tıklamada varsayılan olarak):

Name:  PY_PYTHON
Value: 3

Belirli bir yorumlayıcıda bir komut dosyası başlatmak için aşağıdaki kodu (komut dosyasının başlangıcı) ekleyin:

#! python2

Belirli bir yorumlayıcı kullanarak komut dosyası yürütmek için aşağıdaki komut istemini kullanın:

> py -2 MyScript.py

Belirli bir tercümanı başlatmak için:

> py -2

Varsayılan yorumlayıcıyı başlatmak için (PY_PYTHON değişkeni tarafından tanımlanır):

> py

kaynaklar

Belgeler: Python'u Windows'ta kullanma

PEP 397 - Windows için Python başlatıcısı


8
Ayrıca, easy_install veya pip işlevlerini her iki sürümle birlikte kullanmak için, dahil edilecek yolu değiştirin c:\python35;c:\python35\scripts;c:\python27\scripts;. Bu kullanımına izin verir pip2/ ' pip3ve easy_install-2.7/ easy_install-3.5yerine pipve easy_install.
rdtsc

1
Kendi Python'larını göndermeyen ve sistem sürümünü kullanmakta ısrar eden ve başlatıcıya saygı duymayan çeşitli programlarla çalışmaz.
Jonathan Baldwin

1
Hayır, yola Python eklemeyin. Kullanın py -m pip install .... pyHangi Python'un yukarıdaki gibi çalıştırılacağını seçmek için sonradan anahtarlar ekleyin .
Mark Tolonen

75

Yaptığım şey 2.7.6 ve 3.3.4'ü indirmekti. Python 3.3.4, ortam değişkeninde kendisine yol ekleme seçeneğine sahiptir. Temel olarak Python 2.7.6'yı manuel olarak ekledim.

Nasıl...

  1. Başlat> ortamındaki arama türünde "Hesabınıza ortam değişkenlerini düzenle" seçeneğini seçin 1

  2. Yol'a gidin, yolu seçin, düzenle'yi tıklayın.

  3. C: \ Python27 ekleyin; bu nedenle Python'un her iki sürümünün de yollarına sahip olmalısınız, ancak bunu yapmazsanız bunu kolayca düzenleyebilirsiniz. Böylece: C: \ Python27; C: \ Python33;

  4. C: \ içindeki Python27 klasörüne gidin ve python.exe dosyasının bir kopyasını python2.exe olarak yeniden adlandırın

  5. C: \ içindeki Python34 klasörüne gidin ve python.exe dosyasının bir kopyasını python3.exe olarak yeniden adlandırın

  6. Test: commmand istemini açın ve python2 yazın .... BOOM! Python 2.7.6. çıkmak.

  7. Test: commmand istemini açın ve python3 yazın .... BOOM! Python 3.4.3. çıkmak.

Not: (4. ve 5. adımda pip komutlarını kırmamak için python.exe dosyasının kopyasını yeniden adlandırılan dosyayla aynı dizinde tutun)


43
Bu hem pip2'yi hem de pip3'ü kırar! Python'u değiştirmeyin, kopyalayın ve ikinci dosyayı python2 / python3 olarak yeniden adlandırın.
Mayıs

1
sadece bir uyarı, isimleri geri alana kadar python'u kaldıramadım. Benim tavsiyem kopya yapmak ve bunları yeniden adlandırmak ama orijinal python.exe dosyalarını yalnız bırakmak.
Mantık1

2
Cevapta brunofitas geri bildirimlerini işleyebilir misiniz?
030

Evet, Python3 kurulumundaki python.exe'yi python3.exe olarak yeniden adlandırdım. Bence bu otomatik olarak bir * nix ortamında python ile olur. Tabii ki .exe dosyaları yok ama bir python2 ve python3 programı var. :)
user3870315


51

Windows'da birden fazla sürümüm var. Ben sadece varsayılan değil sürümün exe adını değiştirmek.

python.exe -> python26.exe

pythonw.exe -> pythonw26.exe

Paket yükleyicilere gelince, çoğu exe yükleyicisi paketi eklemek için python yüklemesini seçmenize izin verir. Manuel kurulum için paketin nereye kurulacağını tanımlamak üzere --prefix seçeneğine bakın:

http://docs.python.org/install/index.html#alternate-installation-windows-the-prefix-scheme


Bu işe yaradı. Bu değişikliği yapmadan önce, Python 2.7'de bir program çalıştırmayı denediğimde hala Python 3.1'de çalıştı (Belki Windows 7 aynı ada sahip iki farklı programı işleyemediği için). Exe'yi gösterildiği gibi yeniden adlandırdıktan sonra, her şey yolunda gitti.
dln385

4
@ dln385: Sorunuzu cevapladıysa, onay işaretini tıklayarak kabul etmelisiniz.
dappawit

1
Bu da benim için çalıştı. Python 2.7 ve Python 3.2 arasında bir çatışma yaşadım. İlk olarak Python 3.2'yi kurduğumdan (ve uygun bir çevresel değişken olarak ayarladığım), Python 2.7'ye bilgi isteminde erişemedim (bunun yerine Python 3.2'yi aldım). Ben varsayılan Python 2.7 olarak kullanmak istedim, bu nedenle, python.exe python3.2.exe değişti ve Python 2.7 python.exe değişmeden tuttu. Hile yaptı.
Robert Smith

Bir süredir pencerelere yeni bir python3 yüklemedim, ancak sahip olduğum sürümde pip gibi pip3ve var pip3.4. (ayrıca olarak içerir pip, ancak ben silme düşünmek python2 ile herhangi bir çatışmaları çözmek gerekir). Aslında yok C:\Python34\Scriptsbenim, Pathben herhangi pip ilgili problemleri ... olmadı bu yüzden,
monkut

30

Anaconda Python kullanıyorsanız, çeşitli ortamları kolayca kurabilirsiniz.

Anaconda Python 2.7 yüklediğinizi ve bir python 3.4 ortamı istediğinizi varsayalım:

conda create -n py34 python=3.4 anaconda

Ardından çevreyi etkinleştirmek için:

activate py34

Ve deaktif olmak için:

deactivate py34

(Linux ile kullanmalısınız source activate py34.)

Bağlantılar:

İndir Anaconda Python

Ortamlar için talimatlar


IMO conda, farklı Python kurulumlarıyla uğraşmanın en iyi yoludur. Anaconda'ya taşınmadan önce birçok şeyi berbat ettim.
jrinker

11

Python'un herhangi bir sürümünü aynı sisteme kurmak ve çalıştırmak için aşağıdaki kılavuzumu takip edin.


Örneğin Python 2.x ve Python 3.x'i aynı Windows sistemine kurmak istediğinizi düşünelim.

  1. İkili sürümlerinin her ikisini de istediğiniz yere yükleyin.

    • İstendiğinde dosya uzantılarını kaydetmeyin ve
    • bunları PATH ortam değişkenine otomatik olarak eklemeyin
  2. Sadece pythonPATH'de ilk karşılanan çalıştırılabilir komutun çalıştırılması, başlatma için seçilecektir. Başka bir deyişle, Python dizinlerini manuel olarak ekleyin. İlk eklediğiniz, yazdığınızda seçilecektir python. Ardışık python programları (dizinlerinin PATH'ye yerleştirilme sırası artan) şu şekilde seçilecektir:

    • ikinci için py -2 python
    • üçüncü pythonvs için py -3 ..
  3. "Piton" düzeni ne olursa olsun şunları yapabilirsiniz:

    • şu komutu kullanarak Python 2.x komut dosyalarını çalıştırın: py -2 (Python 3.x işlevselliği) (yani PATH'nizde bulunan ilk Python 2.x kurulum programı seçilecektir)
    • : veya py -3 komutunu kullanarak Python 3.x komut dosyalarını çalıştırın (yani PATH'nizde bulunan ilk Python 3.x kurulum programı seçilecektir)

Örneğimde önce Python 2.7.14 ve Python 3.5.3 yüklü. PATH değişkenim şu şekilde başlar:

PATH = C: \ Program Dosyaları \ Microsoft MPI \ Bin \; C: \ Python27; C: \ Program Dosyaları \ Python_3.6 \ Scripts \; C: \ Program Dosyaları \ Python_3.6 \; C: \ ProgramData \ Oracle \ Java \ javapath; C: \ Program Dosyaları (x86) \ Ortak Dosyalar \ Intel \ Shared

...

Python 2.7'nin ilk ve Python 3.5'in olduğuna dikkat edin.

  • Bu nedenle çalışan pythonkomut python 2.7'yi başlatır (Python 3.5 ise aynı komut Python 3.5'i başlatır).
  • Running py -2, Python 2.7'yi başlatır (çünkü ikinci Python'un uyumsuz olan Python 3.5 olduğu görülür py -2). Running py -3, Python 3.5'i başlatır (çünkü Python 3.x)
  • Eğer yolda başka piton sonra olsaydı şöyle başlatacaklarını: py -4. Python sürüm 4 yayınlandığında / yayınlandığında bu durum değişebilir.

Şimdi py -4veya py -5vb. Sistem çıkışlarımda: Requested Python version (4) not installedveya Requested Python version (5) not installedvb.

Umarım bu yeterince açıktır.


Python dağıtımlarından birinde bir pip kurulumunu nasıl belirtebilirsiniz?
Víctor Martínez

Bulunan ilk python için yazmanız yeterlidir pip. Yüklü başka bir python için yolu manuel olarak belirtmeniz gerekir; C:\Python27\Scripts\pip.py [parameters]. (Elbette, kısayol olarak, istediğiniz herhangi bir exe'yi bir ortam değişkenine koyabilirsiniz.)
Nikos

@ Nik-Lz Ne demek "py -2" komut, ne demek istiyorsun? Bunları pencerelerimde 7 yok gibi görünüyor.
Janos

2
Bu, birden fazla sürüm olması durumunda python'un pencerelerde tam olarak nasıl kullanılması gerektiğidir.
getName


8

İşte yapabilecekleriniz:

Cmder'ı takın . Cmd terminalinde olduğu gibi Cmder'i açın ve kullanın. Komut diğer adları oluşturmak için komut diğer adını kullanın.

Aşağıdakileri yaptım:

alias python2 = c:\python27\python.exe
alias python3 = c:\python34\python.exe

Ve bu kadar! ;-)


6
set-alias python2 c:\python27\python.exe
Peygamber Daniel

Powershell kullanıyorsanız set-alias örnek gösterisi olarak kullanın. Bu durumda Cmder'in kurulmasına gerek yoktur.
Peygamber Daniel

@ProphetDaniel Bu ayrı bir yanıt olarak gönderilmelidir. Orijinal soruyu tamamen cevaplıyor.
Dr_Zaszuś

7

Aslında ilginç bir çözüm düşündüm. Windows, programları kolayca diğer adlara eklemenize izin vermese de, geçerli programı çağıran yeniden adlandırılmış toplu iş dosyaları oluşturabilirsiniz.

Pip dahil olmak üzere bir çok şeyi bozacak olan yürütülebilir dosyayı yeniden adlandırmak yerine, python2.bat dosyasını python2.exe ile aynı dizinde oluşturun. Ardından aşağıdaki satırı ekleyin:

%~dp0python %*

Bu arkaik sözdizimi ne anlama geliyor? Bu bir toplu iş komut dosyası, (bash'ın Windows sürümü). % ~ dp0 geçerli dizini alır ve% * tüm bağımsız değişkenleri komut dosyasına iletilen python'a iletir.

Python3.bat için tekrarlayın

Aynı şeyi pip ve diğer yardımcı programlar için de yapabilirsiniz, sadece dosyadaki python kelimesini pip veya dosya adı ile değiştirin. Diğer ad, dosyanın adı ne olursa olsun olacaktır.

Hepsinden iyisi, PATH'ye eklendiğinde, Windows uzantıyı görmezden gelir

python3

Python3 sürümünü başlatacak ve python2 komutu python2 sürümünü başlatacaktır.

BTW, bu Spyder'ın kendisini Windows üzerindeki yola eklemek için kullandığı aynı tekniktir. :)


1
Mevcut python dosyalarını değiştirmeden harika bir çözüm.
Om Prakash

3

Python'un bir makinesinin birden çok sürümünü yükleyebilir ve kurulum sırasında bunlardan birinin Python dosya uzantılarıyla ilişkilendirilmesini seçebilirsiniz. Modülleri yüklerseniz, farklı sürümler için farklı kurulum paketleri olacaktır veya hedeflemek istediğiniz sürümü seçebilirsiniz. Genellikle kendilerini yorumlayıcı sürümünün site paketleri dizinine yüklediklerinden, herhangi bir çakışma olmamalıdır (ancak bunu test etmedim). Hangi python sürümünü seçmek için, varsayılan değilse yorumlayıcının yolunu el ile belirtmeniz gerekir. Bildiğim kadarıyla, aynı PATH ve PYTHONPATH değişkenlerini paylaşacaklardı, ki bu bir sorun olabilir.

Not: Windows XP çalıştırıyorum. Bunlardan herhangi birinin diğer sürümler için değişip değişmediği hakkında hiçbir fikrim yok, ancak bunun için herhangi bir neden göremiyorum.


3
Python 2.5, 2.6 ve 3.1 hepsi aynı anda yüklü var, Ben bile sadece ihtiyacım olan her sürüm için tüm yükleyicileri çalıştırmak daha zor bir şey yapmak zorunda kaldım.
SingleNegationElimination

3

Python 2.7 ve Python 3.4'ün yüklü olduğu kendi Windows bilgisayarımda yaptığım şey, Python.exe dosyalarımla aynı dizine basit bir .bat dosyası yazdım. Şuna benziyorlar,

cmd /k "c:\python27\python.exe" %*

% * Daha sonra bağımsız değişkenler (Python dosyaları) eklemenize izin verir. / K komut dosyasını çalıştırmayı bitirdikten sonra istemi açık tutar. Sonra python27.bat kaydedin. Sonra Python 3 dizinime gidin ve orada bir yarasa dosyası yapmak. Şimdi komut satırımda yazabilirim

Python27 helloworld.py

Veya

Python34 helloworld.py

Ve kendi Python sürümlerinde çalışacaklar. Ortam değişkenlerinizde c: \ python27 ve c: \ python34 öğelerinin bulunduğundan emin olun .

Cevabımı buradan aldım


2

Bunu aşağıdaki talimatları izleyerek üç adımda yaptım: Tüm bunlar doğrudan buradan alınır: http://ipython.readthedocs.io/en/stable/install/kernel_install.html . Şu anda Windows 8'de Python 2.x kullanıyorum ve Anaconda 4.2.13 yüklü.

1) İlk önce python'un son sürümünü yükleyin:

conda create -n python3 python=3 ipykernel

2) Sonraki etkinleştirmek python3

activate python3

3) Çekirdeği kurun:

python -m ipykernel install --user

Python 3 yüklüyse ve 2 yüklemek istiyorsanız, yukarıdaki 2 ve 3'ü değiştirin. Yeni bir not defteri açtığınızda artık Python 2 veya 3 arasında seçim yapabilirsiniz.


1

Python'u yükledikten sonra sistem ortamı değişkenlerinizi kontrol edin, python 3'ün dizinleri önce PATH değişkeninizde, ardından python 2 olmalıdır.

Windows'un kullandığı yol değişkeni hangisi olursa olsun.

Her zaman olduğu gibi py -2 bu senaryoda python2'yi başlatacaktır.


1

Bu sorunla kendim karşılaştım ve başlatmak istediğiniz sürümü seçebilmeniz için başlatıcıları bir .bat dosyasında yaptım.

Tek sorun .py'nizin python klasöründe olması gerekir, ancak yine de burada kod:

Python2 için

@echo off
title Python2 Launcher by KinDa
cls
echo Type the exact version of Python you use (eg. 23, 24, 25, 26)
set/p version=
cls
echo Type the file you want to launch without .py (eg. hello world, calculator)
set/p launch=
path = %PATH%;C:\Python%version%
cd C:\Python%version%
python %launch%.py
pause

Python3 için

@echo off
title Python3 Launcher by KinDa
cls
echo Type the exact version of Python you use (eg. 31, 32, 33, 34)
set/p version=
cls
echo Type the file you want to launch without .py (eg. hello world, calculator)
set/p launch=
cls
set path = %PATH%:C:\Python%version%
cd C:\Python%version%
python %launch%.py
pause

Bunları .bat olarak kaydedin ve içindeki talimatları uygulayın.


0

En çok kullandığınızı (benim durumumda 3.3) diğerinin üzerine takın. Bu, IDLE'yi istediğinizi kullanmaya zorlar.

Alternatif olarak (python3.3 README'den):

Birden çok sürüm yükleme

Unix ve Mac sistemlerinde, aynı yükleme önekini (- yapılandırma komut dosyasına ön-argüman olarak) kullanarak Python'un birden çok sürümünü kurmayı düşünüyorsanız, birincil python çalıştırıcınızın farklı bir sürümün üzerine yazılmamasına dikkat etmelisiniz. "Make altinstall" kullanılarak yüklenen tüm dosyalar ve dizinler ana ve küçük sürümleri içerir ve böylece yan yana yaşayabilir. "make install" ayrıca $ {prefix} /bin/pythonX.Y olan $ {prefix} / bin / python3 oluşturur. Aynı öneki kullanarak birden çok sürüm yüklemeyi düşünüyorsanız, hangi sürümün (varsa) "birincil" sürümünüz olduğuna karar vermelisiniz. Bu sürümü "make install" kullanarak yükleyin. "Make altinstall" ı kullanarak diğer tüm sürümleri yükleyin.

Örneğin, 2.7 birincil sürüm olmak üzere Python 2.6, 2.7 ve 3.3'ü yüklemek isterseniz, 2.7 derleme dizininizde "make install" ve diğerlerinde "altinstall" yapmalısınız.


0

Sadece kurmak zorunda kaldım. Daha sonra http://defaultprogramseditor.com/ adresinde "Dosya türü ayarları" / "Bağlam menüsü" / arama: "py" altında ücretsiz (ve taşınabilir) yazılımı kullandım, .py dosyasını seçtim ve 2 'IDLE ile aç' adlı mevcut komutu kopyalayarak, adları IDLE 3.4.1 / 2.7.8 olarak değiştirerek ve program sürümlerindeki ilgili sürümlerinin dosya numaralarını değiştirerek IDLE. Şimdi .py dosyasını sağ tıklayıp kullanmak istediğim IDLE'yi seçmem gerekiyor. İsterseniz doğrudan çevirmenlerle de aynısını yapabilirsiniz.


-1

Yalnızca kodunuzu Python IDE'nizde çalıştırıyorsanız çalışır

Windows işletim sistemime Python 2.7 ve Python 3.3 yüklü. Bir dosyayı başlatmaya çalışırsam, genellikle python 2.7 IDE'de açılır. Bu sorunu nasıl çözdüm, kodumu python 3.3'te çalıştırmayı seçtiğimde, python 3.3 IDLE'yi (Python GUI) açtım, dosyayı seçiyorum, IDLE ile dosyamı açıyorum ve kaydediyorum. Sonra kodumu çalıştırdığınızda, o anda açtığım IDLE çalışır. 2.7 ile tersi çalışır.


-1

Windows 10pro'ya hem python 2.7.13 hem de python 3.6.1'i yükledim ve pip2 veya pip3'ü denediğimde aynı "Önemli hata" alıyordum.

Bunu düzeltmek için ne yaptım python 2 ve python 3 dosyaları için python.exe konumuna gitmek ve her bir kopyasını oluşturmak, daha sonra her kopya python2.exe ve python3.exe python sürümüne bağlı olarak yeniden adlandırıldı yükleme klasörü. Bu nedenle python sürümüne bağlı olarak her python kurulum klasöründe hem python.exe dosyası hem de python2.exe veya python3.exe vardı.

Bu, pip2 veya pip3 yazdığımda sorunumu çözdü.


-2

Çalışmak için başka bir şey alamıyorsanız, hangi sürümü seçerseniz seçin (iPython kullanmayı tercih ederim) ve:

import subprocess

subprocess.call('python script.py -flags')

Bu, şu anda hangi python sürümünü kullandığınızı kullanır. Tek bir komut dosyası için iyi çalışır, ancak çalıştırdığınız çok sayıda komut dosyası varsa hızlı bir şekilde elden çıkar. En zarif cevap değil, ama işe yarıyor.

Farklı python sürümü la la Linux yapmak için bir yolu var mı?

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.