Sistem brew upgrade
saya ditingkatkan Python ke Python 3.7. Sayangnya, Python 3.7 merusak perangkat lunak lain yang perlu saya gunakan (termasuk tetapi tidak terbatas pada Ansible). Saya membayangkan masalah ini akan teratasi pada minggu depan, tetapi sementara itu, saya ingin mengembalikan ke Python 3.6.5.x
A brew info python
menunjukkan bahwa versi sebelumnya masih diinstal dan tidak dibersihkan:
➜ brew info python
python: stable 3.7.0 (bottled), HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python/3.6.5 (4,825 files, 100.8MB)
Poured from bottle on 2018-03-31 at 20:21:57
/usr/local/Cellar/python/3.6.5_1 (4,788 files, 99.9MB)
Poured from bottle on 2018-06-20 at 16:00:26
/usr/local/Cellar/python/3.7.0 (4,869 files, 103.3MB)
Poured from bottle on 2018-07-01 at 19:30:37
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/python.rb
Berbagai brew link
dan brew install
perintah yang disarankan oleh situs lain sepertinya tidak berfungsi:
➜ brew link python@3.6.5
Error: No such keg: /usr/local/Cellar/python@3.6.5
➜ brew link python@3.6.5_1
Error: No such keg: /usr/local/Cellar/python@3.6.5_1
➜ brew install python@3.6.5
Error: No available formula with the name "[email protected]"
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
==> Searching for similarly named formulae...
==> Searching local taps...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.
Jawaban:
Jika Anda masih memiliki versi sebelumnya yang tersedia, Anda bisa menggunakannya
sumber
brew switch ...
perintah ini untuk kembali ke 3.7?python3 -m venv --copies venv
menyalin file Python alih-alih membuat symlink, yang mencegahnya pecah saat memutakhirkan versi Python Anda.Error: python does not have a version "3.6.5_1" in the Cellar. python installed versions: 3.7.0
Jika Anda tidak memiliki versi sebelumnya untuk beralih, Anda dapat menginstal dari rumus sebelumnya dengan cara ini:
Perbarui 2019-10
--ignore-dependency notice
Jika Anda menggunakan
--ignore-dependencies
flag untuk mengatasirecursive dependency
kesalahan, itu mungkin memberi Anda kesalahan berikut ketika Anda melakukannyapip3 install
setelah instalasi tersebut:Solusinya adalah menginstal dependensinya terlebih dahulu (kecuali semuanya
sphinx-doc
)Perhatikan bahwa ini perlu
openssl
dan BUKAN[email protected]
yang merupakan ketergantungan terbaru dalam python homebrew 3.7.4_1sumber
brew unlink python
dilakukannya.brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb
.--ignore-dependencies
tidak berfungsi karena sphinx, beri komentar tentang ketergantungan pada sphinx dan instal ulang sphinx seperti dijelaskan di sini: pyimagesearch.com/2019/01/30/…Error: python contains a recursive dependency on itself: python depends on sphinx-doc sphinx-doc depends on python
Dua pilihan
Untuk memulihkan versi Python yang sebelumnya diinstal:
Gunakan
brew info python
untuk melihat apa yang telah Anda instal sebelumnyaUntuk melakukan instalasi Python 3.6.5 yang bersih, gunakan:
Jawaban panjang
Ada dua rumus untuk menginstal Python dengan Homebrew:
python@2
danpython
.Yang pertama adalah untuk Python 2 dan yang kedua untuk Python 3.
Catatan: Anda dapat menemukan jawaban yang sudah kadaluwarsa di web yang disebut
python3
sebagai nama rumus untuk menginstal Python versi 3. Sekarang sudah cukuppython
!Secara default, dengan rumus ini Anda dapat menginstal versi terbaru dari versi utama Python yang sesuai. Jadi, Anda tidak dapat langsung menginstal versi minor seperti 3.6.
Larutan:
Dengan
brew
, Anda dapat menginstal paket menggunakan alamat rumus, misalnya dalam repositori git.Atau khusus untuk Python 3
Alamat yang harus Anda tentukan adalah alamat ke komit terakhir dari rumus (python.rb) untuk versi yang diinginkan. Anda dapat menemukan pengidentifikasi commint dengan melihat sejarah homebrew-core / Formula / python.rb
https://github.com/Homebrew/homebrew-core/commits/master/Formula/python.rb
Python> 3.6.5
Di tautan di atas Anda tidak akan menemukan formula untuk versi Python di atas 3.6.5. Setelah pengelola repositori (resmi) itu merilis Python 3.7, mereka hanya mengirimkan pembaruan ke resep Python 3.7.
Seperti dijelaskan di atas, dengan homebrew Anda hanya memiliki Python 2 (python @ 2) dan Python 3 (python), tidak ada rumus eksplisit untuk Python 3.6 .
Meskipun sebagian besar pembaruan kecil itu tidak relevan dalam banyak kasus dan untuk sebagian besar pengguna, saya akan mencari apakah seseorang telah melakukan formula eksplisit untuk 3.6.
sumber
Mengikuti Langkah # 3: Turunkan Python 3.7 ke Python 3.6 di macOS Mojave di sini berfungsi untuk saya: https://www.pyimagesearch.com/2019/01/30/macos-mojave-install-tensorflow-and-keras-for-deep -pelajaran /
sumber
Anda dapat memutakhirkan sementara waktu
homebrew-core
dan mengaturHOMEBREW_NO_AUTO_UPDATE
variabel untuk menahannya:Saya tidak merekomendasikan homebrew-core backdating secara permanen, karena Anda akan kehilangan patch keamanan, tetapi ini berguna untuk tujuan pengujian.
Anda juga dapat mengekstrak versi rumahan rumahan lama ke dalam tap Anda sendiri (tap_owner / tap_name) menggunakan
brew extract
perintah:sumber
brew link [email protected]
. Padahalpyenv
ada pilihan lain juga.Saya bukan ahli dalam hal ini, tetapi memiliki masalah yang sama. Inilah yang bekerja untuk saya:
$ brew unlink python $ brew uninstall --ignore-dependencies python3 $ brew uninstall pipenv then from https://www.python.org/downloads/ installed python 3.6.6 $ brew install pipenv
sumber