Cara menjalankan beberapa versi Python di Windows

170

Saya memiliki dua versi Python yang diinstal pada mesin saya (versi 2.6 dan 2.5). Saya ingin menjalankan 2.6 untuk satu proyek dan 2.5 untuk yang lain.

Bagaimana saya bisa menentukan yang ingin saya gunakan?

Saya bekerja pada Windows XP SP2.

Bilal Basharat
sumber
3
Petunjuk bagus untuk mengajukan pertanyaan adalah menjelaskan apa yang telah Anda coba, dan dengan cara apa hal itu gagal. Jadi: Apa yang Anda coba, dan dengan cara apa itu tidak berhasil?
Lennart Regebro
Catatan, saya tidak dapat menemukan pertanyaan sebelumnya tentang ini di Windows, jadi saya mengubah judul untuk mencerminkannya.
Lennart Regebro
Jika Anda ingin menjalankan 3.3 bersama dengan 2.7 maka ini adalah jawaban yang paling standar : - stackoverflow.com/questions/15912063/…
Omar Tariq

Jawaban:

135

Menjalankan salinan Python yang berbeda semudah memulai executable yang benar. Anda menyebutkan bahwa Anda telah memulai instance python, dari baris perintah, hanya dengan mengetikpython .

Apa yang dilakukan di bawah Windows, adalah menjaring %PATH%variabel lingkungan, memeriksa file yang dapat dieksekusi, baik file batch ( .bat), file perintah ( .cmd) atau yang dapat dieksekusi lainnya (ini dikendalikan oleh PATHEXTvariabel lingkungan), yang cocok dengan nama yang diberikan. Ketika menemukan file yang benar untuk menjalankan file sedang dijalankan.

Sekarang, jika Anda telah menginstal dua versi python 2.5 dan 2.6, path akan memiliki kedua direktori mereka di dalamnya, sesuatu seperti PATH=c:\python\2.5;c:\python\2.6tetapi Windows akan berhenti memeriksa path ketika menemukan kecocokan.

Yang perlu Anda lakukan adalah memanggil satu atau kedua aplikasi secara eksplisit, seperti c:\python\2.5\python.exeatauc:\python\2.6\python.exe .

Alternatif lainnya adalah membuat jalan pintas ke masing-masing python.exememanggil salah satu dari mereka python25dan yang lain python26; Anda bisa menjalankannya python25di baris perintah.

aodj
sumber
41
cara membuat pintasan itu
Bilal Basharat
8
Saat Anda berada di windows, navigasikan ke folder yang berisi versi python yang ingin Anda buat pintasan, lalu klik kanan dan buat pintasan. Anda kemudian dapat mengubah nama itu.
aodj
3
Maaf menggali posting yang sudah lama mati, tetapi bagaimana Anda membuat pintasan berfungsi tanpa memerlukan ekstensi .lnk?
Nathan Tornquist
7
Jika pintasan tidak berfungsi, Anda dapat melakukan seperti yang dikatakan @FJ, dan cukup salin dan ganti nama. Jika gagal, Anda dapat membuat tautan simbolis, menggunakan '' mklink '' di baris perintah.
aodj
7
Bukankah cara terbaik adalah membuat file kelelawar yang disebut python25 dan python26 dan membuat mereka memanggil versi yang sesuai? Maka yang perlu Anda lakukan adalah meletakkan 2 file bat itu di samping binari mereka.
Jeremy Cantrell
100

Menambahkan dua solusi lagi ke masalah:

  • Gunakan pylauncher (jika Anda memiliki Python 3.3 atau yang lebih baru tidak perlu untuk menginstalnya karena dilengkapi dengan Python sudah) dan baik menambah baris shebang untuk script Anda;

#! c:\[path to Python 2.5]\python.exe- untuk skrip yang ingin dijalankan dengan Python 2.5
#! c:\[path to Python 2.6]\python.exe- untuk skrip yang ingin dijalankan dengan Python 2.6

atau alih-alih menjalankan pythonperintah jalankan perintah pylauncher (py ) menentukan versi Python yang Anda inginkan;

py -2.6- versi 2.6 - versi
py -2terbaru yang diinstal 2.x
py -3.4- versi 3.4
py -3- versi terbaru yang diinstal 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]

sebagai contoh

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

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

maka Anda dapat mengaktifkan yang pertama dan bekerja dengan Python 2.5 seperti ini
c:\venvs\2.5\activate
dan ketika Anda ingin beralih ke Python 2.6 Anda lakukan

deactivate  
c:\venvs\2.6\activate
Piotr Dobrogost
sumber
pylauncher tampaknya merupakan implementasi prototipe dari PEP 397 yang diterima sebagai Jalur Standar kembali pada tahun 2011. Apakah Anda tahu mengapa peluncur masih belum didistribusikan dengan Python untuk Windows atau mengapa hanya ada implementasi prototipe Vinay Sajip?
martineau
4
Pylauncher sedang didistribusikan dengan Python mulai dari versi 3.3 - lihat python.org/download/releases/3.3.0 . Juga saya pikir implementasi Vinay Sajip adalah implementasi bukan hanya prototipe.
Piotr Dobrogost
1
Terimakasih atas klarifikasinya. Pylauncher IMHO harus didistribusikan sebagai bagian dari versi Python 2 terbaru juga karena orang-orang yang menggunakan versi itu lebih cenderung yang ingin menginstal beberapa versi (dan lebih cenderung melakukannya jika mereka mengetahui fungsionalitas dan ketersediaannya).
martineau
StackOverflow harus memungkinkan banyak upvote, jawaban Anda layak mendapatkan upvotes tak terbatas! Serius dari mana saja kamu kawan! : D Sederhana, Jelas dan berfungsi tentu saja!
3bdalla
Saran yang sangat bagus. Saya menggunakan yang kedua (virtualenv). Satunya perbedaan yang saya temukan adalah saya harus menyertakan '\ script' di jalan untuk mengaktifkan, misalnya: c:\venvs\2.5\scripts\activate. Ini pada Windows 10 jika itu membuat perbedaan. Selain itu, berfungsi seperti pesona, terima kasih.
Dave Marley
53

Dari Python 3.3 dan seterusnya, ada peluncur Python resmi untuk Windows ( http://www.python.org/dev/peps/pep-0397/ ). Sekarang, Anda dapat menggunakan #!pythonXuntuk menentukan versi penerjemah yang diinginkan juga di Windows. Lihat lebih detail di komentar saya yang lain atau baca PEP 397.

Ringkasan: The py script.pymeluncurkan versi Python dinyatakan dalam #!atau Python 2 jika #!hilang. The py -3 script.pymeluncurkan Python 3.

semangat
sumber
1
Ini jawaban yang saya cari. Saya menjalankan Windows 10 dengan Python 2.7 dan Python 3.4.3. Pada command prompt ketik "py [python_version_number]" ex: py -3 atau py akan memanggil versi python yang Anda miliki. Saya pikir variabel lingkungan harus ditetapkan sebelum Anda menggunakan ini. ini nyaman bagi saya.
CodeMonkey
2
@Inuka: Tidak ada variabel lingkungan yang perlu diatur. Pemasang Python mengatur asosiasi dengan .pyekstensi. Peluncur itu sendiri diinstal ke dalam C:\Windowsyang sudah ada di PATH. Dengan cara ini, PATHvariabel juga tidak perlu dimodifikasi.
pepr
2
Terima kasih banyak atas jawaban Anda. Dari cara ini kita bisa memanggil pip juga. py -2 -m pip menginstal SomePackage atau py -3.4.3 -m pip menginstal SomePackage
CodeMonkey
Saya pikir ini solusi yang paling sederhana dan tidak repot.
prasad
46

Sesuai @alexander Anda dapat membuat satu set tautan simbolik seperti di bawah ini. Tempatkan mereka di suatu tempat yang termasuk dalam jalur Anda sehingga mereka dapat dengan mudah dipanggil

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

Selama c: \ bin atau di mana pun Anda menempatkannya berada di jalur Anda, kini Anda dapat pergi

> python25
Christopher Hackett
sumber
4
Ide pintar BTW mklinkhanya tersedia secara native di Windows Vista / 2008 +. Pada XP dan Server 2003 "hardlink" dapat dibuat sebagai gantinya menggunakan fsutil hardlink create <new filename> <existing filename>dan menempatkan atau memindahkan <nama file baru> ke suatu tempat di jalur Anda. Namun, hardlink hanya berfungsi pada drive yang sama.
martineau
Ini adalah solusi yang baik, saya tidak yakin itu bekerja tanpa sistem file berbasis NTFS juga.
meawoppl
Ya, membutuhkan dukungan untuk tautan simbolis NTFS yang saya percaya diperkenalkan di Vista (saya mungkin salah). Penggunaan pada XP membutuhkan penggunaan driver yang berbeda . Kedengarannya seperti dimatikan pada beberapa tahap sebelum rilis umum.
Christopher Hackett
solusi terbaik termudah
giantas
15
  1. instal python

    • C: \ Python27
    • C: \ Python36
  2. variabel lingkungan

    • PYTHON2_HOME: C:\Python27
    • PYTHON3_HOME: C:\Python36
    • Path: %PYTHON2_HOME%;%PYTHON2_HOME%\Scripts;%PYTHON3_HOME%;%PYTHON3_HOME%\Scripts;
  3. ganti nama file

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

    • python2 -m pip install package
    • python3 -m pip install package
山 茶树 和 葡萄 树
sumber
Saya kira, kurang lebih ini adalah solusi praktis untuk pertanyaan itu. Ini lebih berguna dibandingkan dengan pendekatan di mana jalan pintas / simbol digunakan untuk memanggil skrip python. Alih-alih mengganti nama file, kita dapat menyalin & menempelkan biner (python.exe) kemudian mengganti nama sesuai dengan versinya (seperti yang ditunjukkan dalam jawaban ini). Omong-omong, pythonperintah akan membingungkan untuk OS.
testuser
Jawaban bagus! Terima kasih ~ @ 山 茶树 和 葡萄 树
Bright Chang
14

Misalnya untuk tipe versi 3.6 py -3.6. Jika Anda juga memiliki versi 32bit dan 64bit, Anda bisa mengetik py -3.6-64atau py -3.6-32.

Mehran Jalili
sumber
3
Ini harus menjadi Jawaban yang Diterima! Terima kasih banyak!
Xonshiz
3
Ini mungkin jawaban terbaik, karena tidak memerlukan penggantian nama file dan IDE pihak ketiga akan mendeteksi keduanya seperti biasa!
Enchant97
dapatkah Anda meningkatkan jawaban dengan lebih banyak penjelasan - di mana ini pydapat dieksekusi - apakah ini tambahan jendela saja? Apakah mungkin untuk memasukkan ini ke dalam skrip baris perintah lintas-platform yang ada di atas: #!/usr/bin/env python3misalnya?
Ed Randall
7

Ketika Anda menginstal Python, itu tidak akan menimpa instalasi lain dari versi utama lainnya. Jadi menginstal Python 2.5.x tidak akan menimpa Python 2.6.x, meskipun menginstal 2.6.6 akan menimpa 2.6.5.

Jadi Anda bisa menginstalnya. Kemudian Anda memanggil versi Python yang Anda inginkan. Sebagai contoh:

C:\Python2.5\Python.exe

untuk Python 2.5 di windows dan

C:\Python2.6\Python.exe

untuk Python 2.6 di windows, atau

/usr/local/bin/python-2.5

atau

/usr/local/bin/python-2.6

pada Windows Unix (termasuk Linux dan OS X).

Ketika Anda menginstal di Unix (termasuk Linux dan OS X) Anda akan mendapatkan pythonperintah generik yang diinstal, yang akan menjadi yang terakhir Anda instal. Ini sebagian besar bukan masalah karena sebagian besar skrip akan secara eksplisit memanggil /usr/local/bin/python2.5 atau sesuatu hanya untuk melindungi dari itu. Tetapi jika Anda tidak ingin melakukan itu, dan Anda mungkin tidak dapat menginstalnya seperti ini:

./configure
make
sudo make altinstall

Perhatikan "altinstall" yang berarti akan menginstalnya, tetapi itu tidak akan menggantikan pythonperintah.

Pada Windows Anda tidak mendapatkan pythonperintah global sejauh yang saya tahu jadi itu bukan masalah.

Lennart Regebro
sumber
terima kasih atas bantuan ure tolong jawab pertanyaan kedua saya juga: bagaimana saya bisa menjalankan keduanya sekaligus? karena saya berhasil beralih dari 2,5 ke 2,6
Bilal Basharat
@Bilal Basharat: Windows adalah OS multi-tugas jika Anda ingin menjalankan dua hal pada saat yang sama, Anda baru saja memulai keduanya, jadi saya tidak mengerti pertanyaan Anda.
Lennart Regebro
Saat ini saya sedang mengerjakan python2.5. cukup jelaskan saya bagaimana saya bisa menjalankan 2.6 juga? ketika saya menulis 'python' di windows command prompt untuk memasukkan python shell dari python2.5 muncul. di c drive saya sudah menginstal kedua versi. ketika saya pergi ke C: \ Python2.6 \ Python.exe. dari python2.6 diaktifkan sementara. segera setelah saya meninggalkan C: \ Python2.6 \ lagi itu berubah menjadi versi 2.5
Bilal Basharat
3
@ Bilal Basharat: Saya sudah menjawab ini. Itu tidak "diaktifkan sementara". Anda menjalankan Python 2.6 dengan perintah C: \ Python2.6 \ Python.exe dan itulah cara Anda menjalankannya. Dan Anda menjalankan Python 2.5 dengan perintah C: \ Python2.5 \ Python.exe. Begitulah cara Anda menjalankan keduanya pada saat bersamaan.
Lennart Regebro
1
@Bilal Basharat: Jika salah satu C:\Python2.5atau C:\Python2.6direktori muncul di PATHvariabel lingkungan Anda , versi Python yang sesuai akan menjadi default kecuali Anda menimpanya dengan secara eksplisit menentukan jalur berbeda ke .exe yang ingin Anda gunakan.
martineau
7

Saya sangat merekomendasikan proyek pyenv-win .

masukkan deskripsi gambar di sini

Berkat kerja kirankotari , sekarang kami memiliki versi Windows pyenv.

Xin Lv
sumber
5

Ini hack cepat:

  1. Pergi ke direktori versi python yang ingin Anda jalankan
  2. Klik kanan pada python.exe
  3. Pilih ' Buat Pintasan '
  4. Berikan nama untuk memanggil pintasan itu (saya menggunakan p27, p33 dll.)
  5. Pindahkan pintasan itu ke direktori home Anda ( C:\Users\Your name)
  6. Buka prompt perintah dan masukkan name_of_your_shortcut.lnk(saya menggunakan p27.lnk)
David Greydanus
sumber
1

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

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

semuanya ada di jalur sistem, pilih versi yang ingin Anda jalankan

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.
>>>
bruceyang
sumber
ini bekerja untuk saya. Hanya harus menggunakan salinan alih-alih cp. Juga ketika menjalankan perintah ini Anda harus berada di suatu tempat di jalan dan kedua instalasi python misalnya c: \ python34 \ bin \ python.exe dan c: \ python27 \ bin \ python.exe perlu berada di jalur juga. (lebih disukai dalam urutan itu).
Gregor Schmitz
1

Menggunakan file batch untuk beralih, mudah dan efisien di windows 7. Saya menggunakan ini:

Dalam dialog variabel lingkungan (C: \ Windows \ System32 \ SystemPropertiesAdvanced.exe),

Di bagian variabel pengguna

  1. menambahkan% pathpython% ke variabel lingkungan path

  2. menghapus referensi ke jalur python

Dalam variabel sistem bagian

  1. menghapus referensi ke jalur python

Saya membuat file batch untuk setiap instalasi python (exmple for 3.4 x64

Name = SetPathPython34x64 !!! ToExecuteAsAdmin.bat ;-) hanya untuk mengingat.

Konten file =

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

     setx PathPython %PathPython%

Untuk beralih antar versi, saya menjalankan file batch dalam mode admin.

!!!!! Perubahan ini efektif untuk jendela prompt perintah SUBSEQUENT yang DIBUKA. !!!

Jadi saya punya kontrol yang tepat untuk itu.

Seorang pria
sumber
0

Cara termudah untuk menjalankan beberapa versi python di windows dijelaskan di bawah ini sebagai berikut: -

1) Unduh versi python terbaru dari python.org/downloads dengan memilih versi yang relevan untuk sistem Anda.

2) Jalankan penginstal dan pilih Tambahkan python 3.x ke path untuk menetapkan path secara otomatis dalam python 3 (Anda hanya perlu mengklik kotak centang). Untuk membuka python 2 installer python 2 Anda, pilih preferensi apa pun yang Anda inginkan tetapi hanya ingat untuk mengatur Tambahkan python.exe ke path ke Akan diinstal pada hard drive lokal , Sekarang cukup klik berikutnya dan tunggu sampai installer selesai.

3) Ketika kedua instalasi selesai. Klik kanan pada komputer saya - Buka properti - Pilih pengaturan sistem lanjutan - Buka variabel lingkungan - Klik baru di bawah Variabel sistem dan tambahkan variabel sistem baru dengan nama variabel sebagai PY_PYTHON dan tetapkan nilai variabel ini menjadi 3 . Sekarang klik OK dan Anda harus selesai.

4) Sekarang untuk menguji ini buka command prompt . Setelah Anda berada di sana ketik python atau py , itu akan membuka python3 .

5) Sekarang keluar dari python3 dengan mengetikkan exit () . Sekarang ketik py -2 itu harus membuka python 2.

Jika tidak ada yang berhasil, hidupkan ulang komputer dan jika masalahnya masih ada, copot semua dan ulangi langkah-langkahnya.

Terima kasih.

Harsh Singh
sumber
0

Anda dapat membuat lingkungan pengembangan python yang berbeda secara grafis dari Anaconda Navigator. Saya memiliki masalah yang sama ketika bekerja dengan versi python yang berbeda jadi saya menggunakan anaconda navigator untuk membuat lingkungan pengembangan python yang berbeda dan menggunakan versi python yang berbeda di setiap lingkungan.

Ini dokumentasi bantuan untuk ini.

https://docs.anaconda.com/anaconda/navigator/tutorials/manage-environmentments/

mohitesachin217
sumber
-1

Menggunakan Editor Lingkungan Cepat, Anda dapat mendorong ke atas direktori instalasi Python yang diinginkan. Misalnya, untuk memulai python dari direktori c: \ Python27, pastikan direktori c: \ Python27 berada sebelum atau di atas direktori c: \ Python36 dalam variabel lingkungan Path. Dari pengalaman saya, executable python pertama yang ditemukan di lingkungan Path sedang dieksekusi. Sebagai contoh, saya telah menginstal MSYS2 dengan Python27 dan karena saya telah menambahkan C: \ MSYS2 ke path sebelum C: \ Python36, python.exe dari folder C: \ MSYS2 .... sedang dieksekusi.

Bogdan Oliver Stochin
sumber
-4

Panggil saja executable yang benar

albertov
sumber
Saat ini saya sedang mengerjakan 2.5. cukup jelaskan saya bagaimana saya bisa menjalankan 2.6 juga. di windows command prompt saya harus menulis 'python' untuk memasukkan python shell. dan itu adalah 2.5. di c drive saya sudah menginstal kedua versi.
Bilal Basharat
Alih-alih pythonmemasukkan shell coba python2.5atau python2.6. Saya bukan pengguna windows, tetapi pada unix / usr / bin / python biasanya merupakan alias untuk executable yang sepenuhnya memenuhi syarat, saya berasumsi python di windows diinstal dengan cara yang sama
albertov
1
Di windows nama yang dapat dieksekusi selalu python.exe, tetapi Anda mengubah jalur ke executable. Ini sudah dijelaskan beberapa kali.
jgritty