Cara menginstal Python 2.x dan Python 3.x di Windows

230

Saya melakukan sebagian besar pemrograman saya di Python 3.x pada Windows 7, tetapi sekarang saya perlu menggunakan Python Imaging Library (PIL), ImageMagick, dan wxPython, yang semuanya memerlukan Python 2.x.

Bisakah saya menginstal Python 2.x dan Python 3.x di Windows 7? Ketika saya menjalankan skrip, bagaimana saya "memilih" versi Python mana yang harus menjalankannya? Apakah program-program tersebut dapat menangani beberapa versi Python yang diinstal sekaligus? Saya telah mencari berjam-jam untuk bagaimana melakukan ini tetapi tidak berhasil.

Terima kasih.

dln385
sumber
14
Untuk solusi yang bersih dan resmi, instal Python 3.3 , yang mencakup Peluncur Python untuk Windows
Nick T
2
Ya, seperti yang dikatakan @NickT, itu paling mudah. Sayangnya, tidak ada jawaban di bawah ini yang memberikan pendekatan sederhana dan langsung. (Yang menyebutkan versi 3.3 datang paling dekat.) Untuk jawaban yang lebih baik, lihat jawaban yang diterima di bawah pertanyaan duplikat: stackoverflow.com/a/17245543/1593924 Singkatnya, gunakan peluncur "py" baru, baik dengan atau tanpa -3 parameter. Dan pertimbangkan untuk menambahkan shebang (#!) Ke skrip Anda sehingga Anda tidak perlu parameter.
Jon Coombs
1
Juga, beberapa telah menemukan rincian yang saya posting di sini bermanfaat: stackoverflow.com/a/13533958/1593924
Jon Coombs

Jawaban:

150

Saya menemukan bahwa cara formal untuk melakukan ini adalah sebagai berikut:

Cukup instal dua (atau lebih, menggunakan installer mereka) versi Python pada Windows 7 (untuk saya bekerja dengan 3.3 dan 2.7).

Ikuti langkah-langkah di bawah ini, ubah parameter untuk kebutuhan Anda.

Buat variabel lingkungan berikut (ke default pada klik ganda):

Name:  PY_PYTHON
Value: 3

Untuk meluncurkan skrip dalam juru bahasa tertentu, tambahkan shebang berikut (awal skrip):

#! python2

Untuk menjalankan skrip menggunakan juru bahasa tertentu, gunakan perintah prompt berikut:

> py -2 MyScript.py

Untuk meluncurkan juru bahasa tertentu:

> py -2

Untuk meluncurkan penerjemah default (ditentukan oleh variabel PY_PYTHON):

> py

Sumber daya

Dokumentasi: Menggunakan Python di Windows

PEP 397 - peluncur Python untuk Windows

Pedro Vagner
sumber
8
Selain itu, untuk menggunakan easy_install atau pip dengan kedua versi, ubah path untuk disertakan c:\python35;c:\python35\scripts;c:\python27\scripts;. Ini memungkinkan penggunaan pip2/ pip3, dan easy_install-2.7/ easy_install-3.5bukannya pipdan easy_install.
rdtsc
1
Tidak akan bekerja dengan berbagai program yang tidak mengirimkan Python mereka sendiri dan bersikeras menggunakan versi sistem, dan tidak menghormati peluncur.
Jonathan Baldwin
1
Tidak, jangan tambahkan Python apa pun ke path. Gunakan py -m pip install .... Tambahkan sakelar setelah pyuntuk memilih Python mana untuk menjalankan pip di bawah seperti di atas.
Mark Tolonen
75

Apa yang saya lakukan adalah mengunduh 2.7.6 dan 3.3.4. Python 3.3.4 memiliki opsi untuk menambahkan path ke sana dalam variabel lingkungan sehingga selesai. Jadi pada dasarnya saya hanya menambahkan Python 2.7.6 secara manual.

Bagaimana cara ...

  1. Mulai> dalam jenis pencarian di lingkungan pilih "Edit variabel lingkungan ke akun Anda" 1

  2. Gulir ke bawah ke Path, pilih path, klik edit.

  3. Tambahkan C: \ Python27; jadi Anda harus memiliki jalur ke kedua versi Python di sana, tetapi jika Anda tidak melakukannya, Anda dapat dengan mudah mengeditnya sehingga Anda melakukannya ..... C: \ Python27; C: \ Python33;

  4. Arahkan ke folder Python27 di C: \ dan ganti nama salinan python.exe ke python2.exe

  5. Arahkan ke folder Python34 di C: \ dan ganti nama salinan python.exe ke python3.exe

  6. Tes: buka prompt commmand dan ketik python2 .... BOOM! Python 2.7.6. keluar.

  7. Tes: buka prompt commmand dan ketik python3 .... BOOM! Python 3.4.3. keluar.

Catatan: (agar tidak melanggar perintah pip pada langkah 4 dan 5, simpan salinan python.exe di direktori yang sama dengan file yang diganti nama)

user3458330
sumber
43
Ini akan mematahkan baik pip2 dan pip3! Jangan ganti python, salin dan ganti nama file kedua menjadi python2 / python3.
brunofitas
1
hanya kata hati-hati, saya tidak dapat menghapus python sampai saya mengembalikan nama kembali. Saran saya adalah untuk membuat salinan dan mengganti nama mereka tetapi meninggalkan file python.exe asli sendiri ** seperti juga disebutkan oleh bruno.
Logika1
2
Bisakah Anda memproses umpan balik brunofitas dalam jawabannya?
030
Ya, saya baru saja mengganti nama python.exe di instalasi Python3 menjadi python3.exe. Saya pikir ini secara otomatis terjadi dengan python di lingkungan * nix. Tentu saja tidak ada file .exe tetapi ada program python2 dan python3. :)
user3870315
Jika Anda memiliki pustaka / plugin yang bergantung pada salah satu versi python, pastikan versi tersebut berada di
urutan
51

Saya memiliki beberapa versi di windows. Saya hanya mengganti nama exe dari versi yang tidak saya gunakan.

python.exe -> python26.exe

pythonw.exe -> pythonw26.exe

Adapun installer paket, sebagian besar installer exe memungkinkan Anda untuk memilih menginstal python untuk menambahkan paket juga. Untuk instalasi manual, periksa opsi --prefix untuk menentukan di mana paket harus diinstal:

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

monkut
sumber
Ini berhasil. Sebelum melakukan perubahan ini, ketika saya mencoba menjalankan sebuah program dengan Python 2.7, ia masih berjalan di Python 3.1 (Mungkin karena Windows 7 tidak dapat menangani dua program berbeda dengan nama yang sama). Setelah mengganti nama exe seperti yang ditunjukkan, semuanya berjalan dengan baik.
dln385
4
@ dln385: Jika menjawab pertanyaan Anda, Anda harus menerimanya dengan mengklik tanda centang
dappawit
1
Ini juga bekerja untuk saya. Saya mengalami konflik antara Python 2.7 dan Python 3.2. Karena saya telah menginstal Python 3.2 terlebih dahulu (dan ditetapkan secara tepat sebagai variabel lingkungan), saya tidak dapat mengakses Python 2.7 di prompt (sebagai gantinya, saya mendapatkan Python 3.2). Saya ingin menggunakan sebagai default Python 2.7, oleh karena itu, saya mengubah python.exe menjadi python3.2.exe dan membuat python.exe dari Python 2.7 tidak berubah. Itu berhasil.
Robert Smith
Saya belum menginstal python3 baru di windows dalam beberapa saat, tetapi versi yang saya miliki termasuk pip as pip3dan pip3.4. (Ini juga termasuk pip, tapi saya pikir menghapus yang seharusnya menyelesaikan konflik dengan python2). Sebenarnya saya tidak punya C:\Python34\Scriptsdi saya Path, jadi saya belum punya masalah terkait pip ...
monkut
30

Jika Anda menggunakan Anaconda Python, Anda dapat dengan mudah menginstal berbagai lingkungan.

Katakanlah Anda telah menginstal Anaconda Python 2.7 dan Anda menginginkan lingkungan python 3.4:

conda create -n py34 python=3.4 anaconda

Kemudian untuk mengaktifkan lingkungan:

activate py34

Dan untuk menonaktifkan:

deactivate py34

(Dengan Linux, Anda harus menggunakan source activate py34 .)

Tautan:

Unduh Anaconda Python

Instruksi untuk lingkungan

philshem
sumber
IMO conda sejauh ini merupakan cara terbaik untuk mengacaukan instalasi Python yang berbeda. Saya mengacaukan banyak hal sebelum pindah ke Anaconda.
jrinker
11

Untuk menginstal dan menjalankan versi Python dalam sistem yang sama ikuti panduan saya di bawah ini.


Misalnya katakanlah Anda ingin menginstal Python 2.x dan Python 3.x pada sistem Windows yang sama.

  1. Instal kedua rilis biner mereka di mana pun Anda inginkan.

    • Ketika diminta, jangan daftarkan ekstensi file mereka dan
    • jangan menambahkannya secara otomatis ke variabel lingkungan PATH
  2. Menjalankan perintah pythonyang dieksekusi yang pertama kali ditemui di PATH akan dipilih untuk diluncurkan. Dengan kata lain, tambahkan direktori Python secara manual. Yang Anda tambahkan pertama akan dipilih saat Anda mengetik python. Program python berturut-turut (urutan yang meningkat agar direktori mereka ditempatkan di PATH) akan dipilih seperti ini:

    • py -2 untuk yang kedua python
    • py -3 untuk yang ketiga pythondll.
  3. Tidak peduli urutan "ular sanca" Anda dapat:

    • jalankan skrip Python 2.x menggunakan perintah: py -2 (fungsi Python 3.x) (mis. program instalasi Python 2.x pertama yang ditemukan di PATH Anda akan dipilih)
    • jalankan skrip Python 3.x menggunakan perintah: atau py -3 (mis. program instalasi Python 3.x pertama yang ditemukan di PATH Anda akan dipilih)

Dalam contoh saya, saya memiliki Python 2.7.14 diinstal terlebih dahulu dan Python 3.5.3. Ini adalah bagaimana variabel PATH saya dimulai dengan:

PATH = 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

...

Perhatikan bahwa Python 2.7 adalah yang pertama dan Python 3.5 detik.

  • Jadi menjalankan pythonperintah akan meluncurkan python 2.7 (jika Python 3.5 perintah yang sama akan meluncurkan Python 3.5).
  • Menjalankan py -2meluncurkan Python 2.7 (karena kebetulan bahwa Python kedua adalah Python 3.5 yang tidak kompatibel dengan py -2). Menjalankan py -3meluncurkan Python 3.5 (karena itu Python 3.x)
  • Jika Anda memiliki python lain kemudian di jalan Anda, Anda akan memulai seperti: py -4. Ini dapat berubah jika / ketika Python versi 4 dirilis.

Sekarang py -4atau py -5dll pada output sistem saya: Requested Python version (4) not installedatau Requested Python version (5) not installeddll.

Semoga ini cukup jelas.

Nikos
sumber
Bagaimana Anda bisa menentukan instalasi pip di salah satu Python dists?
Víctor Martínez
Untuk python pertama yang ditemukan cukup ketik pip. Untuk python lain yang terinstal, Anda harus menentukan path secara manual, yaitu. C:\Python27\Scripts\pip.py [parameters]. (Tentu saja, sebagai pintasan, Anda dapat menempatkan exe apa pun yang Anda inginkan dalam variabel lingkungan.)
Nikos
@ Nik-Lz apa perintah "py -2" itu, yang Anda maksud? Saya sepertinya tidak memilikinya di windows 7.
Janos
2
Ini adalah persis bagaimana seharusnya python digunakan pada windows jika ada banyak versi.
getName
8

Mulai versi 3.3 Versi Windows memiliki peluncur Python, silakan lihat bagian 3.4. Python Launcher untuk Windows

Dmitry Sobolev
sumber
8

Inilah yang dapat Anda lakukan:

Instal cmder . Buka dan gunakan Cmder seperti yang Anda lakukan dengan terminal cmd Anda. Gunakan alias perintah untuk membuat alias perintah.

Saya melakukan yang berikut:

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

Dan itu dia! ;-)

pengguna402429
sumber
6
set-alias python2 c:\python27\python.exe
Nabi Daniel
Gunakan set-alias sebagai contoh tunjukkan jika menggunakan Powershell. Dalam hal ini tidak perlu menginstal Cmder.
Nabi Daniel
@ProphetDaniel Ini harus diposting sebagai jawaban terpisah. Ini benar-benar menjawab pertanyaan awal.
Dr_Zaszuś
7

Saya sebenarnya hanya memikirkan solusi yang menarik. Meskipun Windows tidak akan memungkinkan Anda untuk dengan mudah alias program, Anda dapat membuat file batch yang diganti nama yang akan memanggil program saat ini.

Alih-alih mengganti nama executable yang akan merusak banyak hal termasuk pip, buat file python2.bat di direktori yang sama dengan python2.exe. Kemudian tambahkan baris berikut:

%~dp0python %*

Apa arti sintaksis purba ini? Yah, ini skrip batch, (versi Windows dari bash). % ~ dp0 mendapatkan direktori saat ini dan% * hanya akan meneruskan semua argumen ke python yang diteruskan ke skrip.

Ulangi untuk python3.bat

Anda juga dapat melakukan hal yang sama untuk pip dan utilitas lain, cukup ganti kata python dalam file dengan pip atau apa pun nama file. Alias ​​akan menjadi apa pun nama file tersebut.

Yang terbaik dari semuanya, ketika ditambahkan ke PATH, Windows mengabaikan ekstensi sehingga berjalan

python3

Akan meluncurkan versi python3 dan dan perintah python2 akan meluncurkan versi python2.

BTW, ini adalah teknik yang sama yang digunakan Spyder untuk menambahkan dirinya ke jalur di Windows. :)

Skylion
sumber
1
Solusi luar biasa tanpa mengubah file python yang ada.
Om Prakash
3

Anda dapat menginstal beberapa versi Python satu mesin, dan selama penyetelan, Anda dapat memilih agar salah satu dari mereka mengaitkan dirinya dengan ekstensi file Python. Jika Anda memasang modul, akan ada paket pengaturan yang berbeda untuk versi yang berbeda, atau Anda dapat memilih versi mana yang ingin Anda targetkan. Karena mereka umumnya menginstal sendiri ke direktori paket situs dari versi interpreter, seharusnya tidak ada konflik (tapi saya belum menguji ini). Untuk memilih versi python, Anda harus menentukan secara manual path ke interpreter jika itu bukan yang default. Sejauh yang saya tahu, mereka akan berbagi variabel PATH dan PYTHONPATH yang sama, yang mungkin menjadi masalah.

Catatan: Saya menjalankan Windows XP. Saya tidak tahu apakah ada perubahan ini untuk versi lain, tapi saya tidak melihat alasan bahwa itu akan berubah.

li.davidm
sumber
3
Saya memiliki python 2.5, 2.6 dan 3.1 semuanya terinstal secara bersamaan, bahkan tidak pernah terjadi pada saya bahwa saya mungkin harus melakukan sesuatu yang lebih sulit daripada hanya menjalankan semua installer untuk setiap versi yang saya butuhkan.
SingleNegationElimination
3

Apa yang telah saya lakukan di komputer windows saya sendiri di mana saya memiliki Python 2.7 dan Python 3.4 diinstal adalah saya menulis file bat sederhana dalam direktori yang sama dengan file Python.exe saya. Mereka terlihat seperti,

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

% * Memungkinkan Anda untuk menambahkan argumen (file Python) sesudahnya. Saya percaya / k tetap membuka prompt setelah selesai menjalankan skrip. Lalu saya simpan itu sebagai python27.bat Lalu saya pergi ke direktori Python 3 saya dan membuat file kelelawar di sana. Sekarang di baris perintah saya, saya bisa menulis

Python27 helloworld.py

Atau

Python34 helloworld.py

Dan mereka akan berjalan dalam versi Python masing-masing. Pastikan c: \ python27 dan c: \ python34 ada di variabel lingkungan Anda.

Saya mendapat jawaban saya dari sini

Bryan Kimani
sumber
2

Saya melakukan ini dalam tiga langkah dengan mengikuti instruksi di sini: Ini semua diambil langsung dari sini: http://ipython.readthedocs.io/en/stable/install/kernel_install.html . Saya sedang menjalankan Python 2.x pada Windows 8 dan menginstal Anaconda 4.2.13.

1) Pertama instal versi terbaru python:

conda create -n python3 python=3 ipykernel

2) Selanjutnya aktifkan python3

activate python3

3) Instal kernel:

python -m ipykernel install --user

Jika Anda menginstal Python 3 dan ingin menginstal 2, alihkan 2 dan 3 di atas. Saat Anda membuka buku catatan baru, sekarang Anda dapat memilih antara Python 2 atau 3.

Moiz Kapadia
sumber
1

Periksa variabel lingkungan sistem Anda setelah menginstal Python, direktori python 3 harus menjadi yang pertama dalam variabel PATH Anda, kemudian python 2.

Variabel path mana yang cocok pertama adalah yang digunakan Windows.

Seperti biasa, py -2 akan meluncurkan python2 dalam skenario ini.

Spitfire19
sumber
1

Saya telah mengalami masalah itu sendiri dan saya membuat peluncur saya di .bat sehingga Anda dapat memilih versi yang ingin Anda luncurkan.

Satu-satunya masalah adalah .py Anda harus berada di folder python, tetapi bagaimanapun, berikut adalah kodenya:

Untuk Python2

@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

Untuk Python3

@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

Simpan sebagai .bat dan ikuti instruksi di dalamnya.

Agak
sumber
0

Instal yang paling sering Anda gunakan (3,3 dalam kasus saya) di atas yang lain. Itu akan memaksa IDLE untuk menggunakan yang Anda inginkan.

Atau (dari python3.3 README):

Menginstal banyak versi

Pada sistem Unix dan Mac jika Anda berniat untuk menginstal beberapa versi Python menggunakan awalan instalasi yang sama (- argumen sebelumnya ke skrip configure) Anda harus berhati-hati agar executable python utama Anda tidak ditimpa dengan pemasangan versi yang berbeda. Semua file dan direktori yang diinstal menggunakan "make altinstall" berisi versi utama dan kecil dan karenanya dapat hidup berdampingan. "make install" juga menciptakan $ {awalan} / bin / python3 yang merujuk ke $ {awalan} /bin/pythonX.Y. Jika Anda ingin menginstal beberapa versi menggunakan awalan yang sama, Anda harus memutuskan versi mana (jika ada) yang merupakan versi "utama" Anda. Instal versi itu menggunakan "make install". Instal semua versi lain menggunakan "make altinstall".

Misalnya, jika Anda ingin menginstal Python 2.6, 2.7 dan 3.3 dengan versi utama 2.7, Anda akan menjalankan "make install" di direktori build 2.7 Anda dan "make altinstall" di yang lain.

abudhabikid
sumber
0

Saya hanya harus menginstalnya. Kemudian saya menggunakan soft (dan portable) gratis di http://defaultprogramseditor.com/ di bawah "Pengaturan jenis file" / "Menu konteks" / search: "py", memilih file .py dan menambahkan perintah 'terbuka' untuk 2 IDLE dengan menyalin perintah yang ada bernama 'buka dengan IDLE, ubah nama menjadi IDLE 3.4.1 / 2.7.8, dan remplacing nomor file dari versi masing-masing di jalur program. Sekarang saya tinggal klik kanan file .py dan pilih IDLE mana yang ingin saya gunakan. Dapat melakukan hal yang sama dengan penerjemah langsung jika Anda mau.

wheya
sumber
-1

Hanya berfungsi jika Anda menjalankan kode Anda di Python IDE Anda

Saya memiliki Python 2.7 dan Python 3.3 diinstal pada sistem operasi windows saya. Jika saya mencoba meluncurkan file, biasanya akan terbuka di python 2.7 IDE. Bagaimana saya mengatasi masalah ini, adalah ketika saya memilih untuk menjalankan kode saya di python 3.3, saya membuka python 3.3 IDLE (Python GUI), pilih file, buka file saya dengan IDLE dan simpan. Kemudian ketika saya menjalankan kode saya, itu berjalan ke IDLE yang saat ini saya buka dengannya. Ini bekerja sebaliknya dengan 2.7.

pengguna3295433
sumber
-1

Saya telah menginstal python 2.7.13 dan python 3.6.1 di windows 10pro dan saya mendapatkan "Fatal error" yang sama ketika saya mencoba pip2 atau pip3.

Apa yang saya lakukan untuk memperbaiki ini adalah pergi ke lokasi python.exe untuk file python 2 dan python 3 dan membuat salinan masing-masing, saya kemudian mengganti setiap salinan menjadi python2.exe dan python3.exe tergantung pada versi python di folder instalasi. Karena itu saya punya di setiap folder instalasi python baik file python.exe dan python2.exe atau python3.exe tergantung pada versi python.

Ini menyelesaikan masalah saya ketika saya mengetik pip2 atau pip3.

eddy onyango
sumber
-2

Jika Anda tidak dapat melakukan hal lain, buka juru bahasa di versi mana pun yang Anda pilih (saya lebih suka menggunakan iPython) dan:

import subprocess

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

Ini menggunakan versi python mana pun yang sedang Anda operasikan. Berfungsi dengan baik untuk satu skrip, tetapi akan cepat hilang jika ada banyak skrip yang Anda jalankan, dalam hal ini Anda selalu dapat membuat file batch dengan semua panggilan ini di dalamnya. Bukan jawaban yang paling elegan, tetapi berhasil.

Apakah ada cara untuk membuat alias untuk versi python yang berbeda ala Linux?

pengguna2796022
sumber