Bagaimana agar Conda dan Virtualenv bekerja di mac OS Catalina?


12

Saya sebelumnya membuat Conda berjalan dengan lancar di Mojave, tetapi saya telah menemukan bahwa peningkatan ke Catalina memindahkan folder "anaconda3" ke Desktop Anda> Item yang dipindahkan> Keamanan> anaconda3. Tampaknya pengaturan keamanan Catalina mungkin tidak memungkinkan aplikasi untuk menginstal langsung di bawah direktori pengguna lagi.

Saya mencoba saran di sini , yang ditulis di bawah ini:

Hai, saya mungkin punya solusi

  • Salin folder anaconda3 yang terletak di Item Pindah ke / Pengguna / myname /
  • Buka Terminal
  • Masukkan: ekspor PATH = '' / Pengguna / myname / anaconda3 / bin: $ PATH "
  • Masukkan: conda init zsh

Berhasil! Semoga berhasil!

Tetapi ini tidak berhasil untuk saya. Setelah conda init zshsaya mendapatkan:

-bash: / Users / USER / anaconda3 / bin / conda: / anaconda3 / bin / python: bad interpreter: Tidak ada file atau direktori seperti itu

Bagaimana saya bisa mengaktifkan dan menjalankan Conda lagi tanpa kehilangan semua lingkungan virtual saya? Terima kasih!


Memperbarui

Saya mendapat Conda untuk bekerja mengikuti saran @Ted Shaowang. Ini berarti bahwa conda env listmenunjukkan semua lingkungan virtual yang dibuat melalui Conda.

Namun saya masih mengalami masalah virtualenvkarena sejak saya mengubah lokasi file anaconda3 default, python tidak dapat ditemukan.

Eksekusi python yang terletak di .virtualenvs/env/bin/pythontidak dapat ditemukan. Apakah saya perlu membuat perubahan lebih lanjut agar python dapat bekerja virtualenvjuga?


Dari kesalahan Anda sepertinya Anda masih menggunakan bash, tetapi solusi yang disarankan adalah untuk zsh(standar Catalina baru). Coba conda init bashsaja.
merv

Saya mendapat kesalahan yang sama. bashjuga tidak bekerja.
Kaymal

Jawaban:


6

Saya memiliki masalah yang sama persis dan ini bekerja untuk saya:

Setelah Anda memindahkan anaconda dari "Item yang Direlokasi" ke ~/anaconda3, edit baris pertama ~/anaconda3/bin/condafile dari #!/anaconda3/bin/pythonke #!/Users/USERNAME/anaconda3/bin/pythonuntuk mencerminkan perubahan.


1
Apakah ini mempengaruhi pengaturan pip dan Jupyter?
rrz0

1
Ini sepertinya tidak menyelesaikan semua masalah yang terkait dengan anaconda3 dan python. Saya mendapatkan Galat: Tidak dapat menjalankan program "/Users/USER/.virtualenvs/env/bin/python"Tidak ada file atau direktori tersebut. Ketika saya memeriksa Finder, file tersebut memang hilang dan tidak dapat ditemukan.
rrz0

3

Saya mungkin akan abstain menggunakan solusi di atas. Itu ~/anaconda3/bindirektori memiliki banyak runnables (bukan hanya condasatu) yang akan perlu diubah dengan cara manual ini. Misalnya, kecuali jika Anda melakukan perubahan yang sama, Anda tidak dapat menjalankan jupyter notebookkeduanya, baik dari basemaupun dari env lain yang mungkin Anda miliki.

Kiat saya: Coba dapatkan file persyaratan untuk virtual envs Anda, dan lakukan instalasi baru. Anda dapat menggunakan pipreqsuntuk mendapatkan persyaratan yang digunakan untuk proyek individual: https://www.idiotinside.com/2015/05/05/python-auto-generate-requirements-txt/


Terima kasih untuk sarannya. Seperti yang Anda katakan masalah tetap dengan virtualenvjuga.
rrz0

3
Silakan lihat posting blog merekomendasikan alat untuk memperbaikinya: anaconda.com/…
msarahan


1

Secara teknis ini menginstal ulang anaconda, namun, saya memulihkan semua kondominium saya jadi, semoga ini adalah solusi yang dapat diterima!

Inilah cara saya menjalankan Catalina pada beberapa menit yang lalu (sekarang menggunakan z-shell): - Mengverifikasi keberadaan direktori "Relocated Items" di desktop saya dan direktori "anaconda3" dan isinya di dalam - Bernavigasi ke dalam direktori envs di bawah "anaconda3" dan membiarkan jendela finder terbuka (lihat tangkapan layar)

masukkan deskripsi gambar di sini

KEMUDIAN:

  • membuka Terminal baru (z-shell)
  • ran (ini diinstal ke / usr / local / anaconda3):

    brew tong menginstal anaconda

  • setelah instalasi berhasil, saya membuka file ~ / .zshrc saya (untuk alias z-shell saya) dan menambahkan baris berikut:

    export PATH = "/ usr / local / anaconda3 / bin: $ PATH"

  • menyimpan file ~ / .zshrc saya, lalu memuat kembali dengan:

    sumber ~ / .zshrc

  • untuk memverifikasi perintah conda berfungsi sekarang, saya menjalankan:

    daftar kondom env

  • bagi saya, ini menunjukkan basis env dan hanya itu

  • kemudian buka Finder ke lokasi envs baru: buka / usr / local / anaconda3 / envs /.

  • Saya menyeret (memindahkan) semua env lama saya ke folder env baru, dan kemudian berlari:

    daftar kondom env

Dan semua teman lama saya sudah kembali! :)

  • memperbarui jalur interpreter / env PyCharm saya untuk mencerminkan lokasi baru envs ini (harus me-restart PyCharm setelah, tetapi sekarang berfungsi!)
  • DIBUAT

Terima kasih atas saran Anda. Apakah ini virtualenvjuga berhasil? Saya punya beberapa virtualenvsyang saya tidak dapat menggunakan di Pycharm karena saya terus mendapatkan `Kesalahan: tidak dapat menjalankan program "/Users/USER/.virtualenvs/baseline_env/bin/python" Tidak ada berkas atau directory.` Dalam Finder Saya juga mendapatkan"The original item python cannot be found.
rrz0

1
Silakan lihat posting blog merekomendasikan alat untuk memperbaiki lebih banyak koneksi yang rusak: anaconda.com/…
msarahan

1
@Rrz0 berdasarkan apa yang Anda tulis, saya kira jalur ke virtualenv salah. Ini hacky, tetapi jika Anda bisa sampai ke virtualenv Anda, saya pikir Anda harus dapat menyalin path ke sana dan mengedit entri di PyCharm (jika virtualenvs berada dalam kesepakatan item yang dipindahkan maka saya tidak yakin di mana menyarankan Anda untuk taruh mereka) - Jika Anda dapat membuka virtualenv lama Anda, Anda dapat (satu per satu) mengaktifkannya dari shell dan menjalankan: pip freeze> requirement_VENV_NAME.txt - di PyCharm buat virtualenvs baru - aktifkan setiap virtualenv baru dan jalankan: pip install - r requirement_VENV_NAME.txt
Phil S

Terima kasih @PhilS, sesuatu yang sejalan akhirnya berhasil.
rrz0

0

Tidak yakin apakah ini dianggap sebagai komentar atau setidaknya sebagai jawaban sementara, tetapi saya akan menahan diri untuk tidak mencoba memperbaiki masalah kompatibilitas Catalina dengan Anaconda untuk saat ini. Lihat masalah GitHub ini .


0

Saya memiliki masalah yang sama, dan ini bekerja untuk saya: Solusi saya:

  1. Salin anaconda3 Anda dari folder Item yang Direlokasi
  2. Rekatkan di Nama Pengguna / Nama Pengguna Anda
  3. Buka file conda di anaconda3 / bin dengan editor dan edit baris pertama #!/anaconda3/bin/pythonke#!/Users/YourUserName/anaconda3/bin/python
  4. Simpan dan jalankan file conda
  5. Buka Terminal
  6. Jalankan ini : export PATH=''/Users/YourUserName/anaconda3/bin:$PATH"
  7. Lari conda init zsh

Apakah saya perlu membuat perubahan lebih lanjut agar python juga berfungsi virtualenv, misalnya?
rrz0

0

Saya telah mengalami masalah yang sama, dan solusi berikut ini bekerja untuk saya, dan ini adalah solusi termudah:

Daripada mengacaukan menyalin file anaconda3 dari item yang dipindahkan ke direktori User / USERNAME, lebih baik menginstal ulang versi terbaru navigator anaconda dari situs resminya: https://www.anaconda.com/distribution/#macos

Saat instalasi, ia akan menanyakan kepada Anda beberapa izin yang merupakan akibat dari Kebijakan Keamanan Apple yang baru, berikan saja, dan berfungsi sebagaimana mestinya setelah instalasi baru ini!


0

Inilah yang bekerja untuk saya.

Ini adalah file header saya (Catalina 10.15):

/Library/Developer/CommandLineTools/usr/include/c++/v1/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h

Jalankan sudo find /Library -name stdio.huntuk melihat di mana Anda berada.

Mojave 10.14 file header:

$ sudo find /Library -name stdio.h 
/Library/Developer/CommandLineTools/usr/include/c++/v1/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h

Seperti dapat dilihat, SDK sekarang dipecah menjadi MACOSX10.14 dan 10.15 tidak seperti di Mojave.

TLDR

Jadi, ini adalah folder SDK saya di Catalina:

<img width = "208" alt = "image" src = "https://user-images.githubusercontent.com/31866965/67324292-e49a1e00-f513-11e9-997e-9c49e7badbe5.png">

  1. Ganti nama MacOSX.sdkmenjadiMacOSX_orig.sdk
  2. Klik kanan MacOSX10.14.sdk
  3. Duplikat
  4. Ubah nama folder duplikat menjadi MacOSX.sdk

Struktur folder Anda sekarang akan terlihat seperti ini:

<img width = "195" alt = "image" src = "https://user-images.githubusercontent.com/31866965/67318914-74d46500-f50c-11e9-879d-ef0cd3e458cc.png">

Seperti ini kita pada dasarnya menggunakan OSX sdk versi sebelumnya sebagai sysroot. Semoga ini membantu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.