Bagaimana saya bisa menggunakan Homebrew untuk menginstal Python 2 dan 3 di Mac?
146
Saya harus bisa bolak-balik antara Python 2 dan 3. Bagaimana saya melakukannya dengan menggunakan Homebrew karena saya tidak ingin mengacaukan jalan dan mendapat masalah. Saat ini saya telah menginstal 2,7 melalui Homebrew.
Anda mungkin ingin mengubah pertanyaan untuk menghapus referensi homebrew karena itu belum tentu merupakan persyaratan untuk mencapai tujuan Anda (lihat jawaban saya di bawah ini misalnya stackoverflow.com/a/49091638/2923369 )
Matt Schlobohm
Jawaban:
288
Saya akan menggunakan pyenv. Anda dapat menginstalnya:
$ brew install pyenv
Untuk mengaktifkan pyenv di Bash shell Anda, Anda perlu menjalankan:
$ eval "$(pyenv init -)"
Untuk melakukan ini secara otomatis untuk Bash saat startup, tambahkan baris itu ke ~/.bash_profile.1
Pemakaian:
Setelah menginstal pyenv dan mengaktifkannya, Anda dapat menginstal berbagai versi python dan memilih yang mana yang dapat Anda gunakan. Contoh:
$ pyenv install 2.7.5
Anda dapat memeriksa versi yang telah Anda instal:
$ pyenv versions
Dan Anda dapat beralih di antara versi python dengan perintah:
$ pyenv global3.3.1
Anda juga dapat mengatur versi python untuk direktori saat ini dengan:
$ pyenv local 3.5.2
Anda dapat memeriksa dengan menjalankan python --version:
$ python --version
Python3.5.2
1 Homebrew biasa memerintahkan Anda untuk melakukan ini saat memasang pyenv, tetapi pesan itu dihapus . Untuk Zsh dan shell lainnya, langkah-langkah pastinya mungkin berbeda.
Ini adalah solusi paling sederhana. Saat ini saya menggunakan ini untuk beralih antara Python 3 dan 2.7.x
Naz Mir
3
Jika saya sudah menginstal python 2.7 melalui homebrew , adakah yang harus saya lakukan dengan menggunakan pyenv ? Bisakah saya menginstal python 2.7 melalui pyenv ?
Drake Guan
3
Yap, Anda dapat menginstal python 2.7 lainnya melalui pyenv. Ini akan menginstal python dalam $ PYENV_ROOT / versi. Python 2.7 lain yang diinstal melalui homebrew dapat muncul sebagai "sistem" ketika Anda menjalankan "versi pyenv".
moliware
5
Saya harus menambahkan eval "$(pyenv init -)".profile / .zshrc saya agar pyenv berfungsi.
Rohmer
5
@ilciavo, Anda mungkin harus menambahkan eval "$(pyenv init -)"~ / .bash_profile Anda
Jojanzing
77
Anda dapat menginstal kedua versi secara bersamaan.
Untuk Homebrew> = 1.5.0:
Sejak 1 Maret 2018 pythonformula akan ditingkatkan ke Python 3.x, sementara yang barupython@2 formula akan ditambahkan untuk Python 2.7, secara khusus.
Sekarang, Anda akan memiliki kedua versi yang diinstal di mesin Anda. Saat Anda ingin menggunakan versi 2, gunakan pythonexecutable. Saat Anda ingin menggunakan versi 3, gunakan python3executable.
terima kasih atas pembaruannya! Saya mengikuti rute yang sama tetapi memiliki masalah dengan harus mengatur PYTHONPATHpada setiap perubahan ... tahu? selain itu, pyenvhebat.
meduz
9
Juga, perhatikan bahwa memiliki python2 dan python3 berdampingan, bahwa python menunjuk ke python2 dan python3 menunjuk ke python3 seperti yang diharapkan. Namun, satu hal yang besar adalah bahwa pip tidak menunjuk ke pip2 seperti yang Anda harapkan. Ini sebenarnya menunjuk ke pip3 (seperti halnya pip3 jelas). Untuk menggunakan pip2, secara eksplisit gunakan pip2. Agak tidak konsisten memiliki sufiks non angka untuk titik python ke 2 tetapi sufiks non angka untuk pip poin ke 3.
JD
5
Ini mengacaukan executable umum seperti pip. python3 akan menimpa python2 pip dalam kasus ini dan itu akan menjadi perintah "pip" default
kissgyorgy
1
Menanggapi komentar @ kissgyorgy: Saya memiliki masalah itu, komentar terakhir tentang masalah ini menyelesaikannya untuk saya github.com/Homebrew/legacy-homebrew/issues/50607 , menjalankan python3 -m pip install -U --force-reinstall piplalu python -m pip install -U --force-reinstall pipmengembalikan semuanya ke referensipip Python 2 pip.
Harry
11
Saat ini Homebrew menyediakan dua formula berbeda untuk Python 2 dan 3. brew install pythonmenginstal python3, dan brew install python@2menginstal python2. Lebih detail dalam dokumen Homebrew:
Sebagai alternatif, Anda mungkin bisa memasukkan "python3" untuk menjalankan versi python3.x dan "python" atau "python2" terbaru Anda untuk menjalankan versi 2.x yang diinstal terbaru.
Ada beberapa cara untuk menggunakan keduanya, tetapi solusi paling sederhana saat ini adalah menggunakan pyenv . pyenv memungkinkan peralihan yang mudah antar versi. Inilah yang saya lakukan untuk mengatur:
Sekali waktu ada bahasa pemrograman
Ada banyak versi
sehingga orang menulis manajer versi untuk itu
Untuk beralih di antara versi untuk proyek yang
berbeda, lama, baru.
Lalu ada lebih banyak bahasa pemrograman.
Jadi, ada lebih banyak manajer versi
dan banyak perintah untuk mereka
Saya menginstal banyak dari mereka
saya belajar banyak perintah
Kemudian saya berkata, hanya satu manajer versi lagi yang
akan saya tulis
Manajer versi dapat diperpanjang sehingga
siapa pun dapat membuat plugin
Untuk mendukung bahasa favorit mereka
Tidak perlu lagi menginstal manajer versi
atau mempelajari lebih banyak perintah
Menurut saya ini bukan alat yang bersaing tetapi alat yang sama, diterapkan sekali (dan terkadang lebih dari sekali) per bahasa. Agak seperti mengapa kita membutuhkan sesuatu seperti LSP juga, IMHO. microsoft.github.io/language-server-protocol/overview
Matt Schlobohm
1
Saya pikir saya memiliki persyaratan yang sama - untuk berpindah di antara versi Python - tetapi saya mencapai semua yang saya butuhkan hanya dengan Python3.6 dengan membangun dari sumber alih-alih menggunakan homebrew.
git clone https://git.<theThingYouWantToInstall>
Bergantung pada repo, periksa apakah ada file MAKE yang sudah diatur untuk opsi ini.
Jawaban:
Saya akan menggunakan pyenv. Anda dapat menginstalnya:
Untuk mengaktifkan pyenv di Bash shell Anda, Anda perlu menjalankan:
Untuk melakukan ini secara otomatis untuk Bash saat startup, tambahkan baris itu ke
~/.bash_profile
.1Pemakaian:
Setelah menginstal pyenv dan mengaktifkannya, Anda dapat menginstal berbagai versi python dan memilih yang mana yang dapat Anda gunakan. Contoh:
Anda dapat memeriksa versi yang telah Anda instal:
Dan Anda dapat beralih di antara versi python dengan perintah:
Anda juga dapat mengatur versi python untuk direktori saat ini dengan:
Anda dapat memeriksa dengan menjalankan
python --version
:1 Homebrew biasa memerintahkan Anda untuk melakukan ini saat memasang pyenv, tetapi pesan itu dihapus . Untuk Zsh dan shell lainnya, langkah-langkah pastinya mungkin berbeda.
sumber
eval "$(pyenv init -)"
.profile / .zshrc saya agar pyenv berfungsi.eval "$(pyenv init -)"
~ / .bash_profile AndaAnda dapat menginstal kedua versi secara bersamaan.
Untuk Homebrew> = 1.5.0:
Sejak 1 Maret 2018
python
formula akan ditingkatkan ke Python 3.x, sementara yang barupython@2
formula akan ditambahkan untuk Python 2.7, secara khusus.Lihat perubahan pengumuman di sini atau dokumen terakhir tentang penggunaan Homebrew untuk Python di sini .
Untuk Homebrew yang lebih tua:
Untuk Python 2.x:
Untuk Python 3.x:
Sekarang, Anda akan memiliki kedua versi yang diinstal di mesin Anda. Saat Anda ingin menggunakan versi 2, gunakan
python
executable. Saat Anda ingin menggunakan versi 3, gunakanpython3
executable.sumber
PYTHONPATH
pada setiap perubahan ... tahu? selain itu,pyenv
hebat.python3 -m pip install -U --force-reinstall pip
lalupython -m pip install -U --force-reinstall pip
mengembalikan semuanya ke referensipip
Python 2pip
.Saat ini Homebrew menyediakan dua formula berbeda untuk Python 2 dan 3.
brew install python
menginstal python3, danbrew install python@2
menginstal python2. Lebih detail dalam dokumen Homebrew:https://docs.brew.sh/Homebrew-and-Python
Jika saat ini Anda sudah menginstal 2.x melalui Homebrew, Homebrew akan memberi Anda pesan seperti:
Jika Anda menjalankan:
Anda harus dapat melakukan:
dan
Untuk melihat versi Python 2.x dan 3.x apa yang diinstal.
sumber
Sebagai alternatif, Anda mungkin bisa memasukkan "python3" untuk menjalankan versi python3.x dan "python" atau "python2" terbaru Anda untuk menjalankan versi 2.x yang diinstal terbaru.
sumber
Ada beberapa cara untuk menggunakan keduanya, tetapi solusi paling sederhana saat ini adalah menggunakan pyenv . pyenv memungkinkan peralihan yang mudah antar versi. Inilah yang saya lakukan untuk mengatur:
LANGKAH 1:
Hapus semua ular sanca dari mac Anda
Hapus yang berikut dari
~/.bash_profile
dan juga yang berikut dari
~/.bashrc
LANGKAH 2 :
Instal pyenv dan versi python yang Anda butuhkan
LANGKAH3 :
tambahkan
pyenv init
kebash_profile
ataubashrc
LANGKAH4 :
Periksa apa yang sudah diinstal
LANGKAH5:
Pilih default
Ketika sebuah proyek membutuhkan versi yang lebih lama, cukup buka folder root dan jalankan
sumber
Gunakan asdf !
https://github.com/asdf-vm/asdf
https://github.com/tuvistavie/asdf-python
https://github.com/asdf-vm/asdf-plugins
sumber
Saya pikir saya memiliki persyaratan yang sama - untuk berpindah di antara versi Python - tetapi saya mencapai semua yang saya butuhkan hanya dengan Python3.6 dengan membangun dari sumber alih-alih menggunakan
homebrew
.git clone https://git.<theThingYouWantToInstall>
Bergantung pada repo, periksa apakah ada file MAKE yang sudah diatur untuk opsi ini.
sumber
Saya dapat pergi ke https://www.python.org/downloads/mac-osx/ dan mengunduh python terbaru. Itu diinstal bersama python sisi saat ini di sistem saya.
sumber
Oke, saya kesulitan dengan instalasi minuman Python3 saya, karena saya tidak punya pip3
dan aku melakukannya
dan menginstal Python 3.6.2 reguler dari distribusi resmi dan kemudian saya pip3 dan semua komponen ok.
sumber