Як змусити Conda та Virtualenv працювати над Mac OS Catalina?


12

У мене раніше Conda плавно працював на Mojave, але я виявив, що оновлення до Каталіни переміщує папку "anaconda3" на робочий стіл> Переміщені елементи> Безпека> anaconda3. Здається, що параметри безпеки Каталіни більше не дозволяють додаткам встановлюватись безпосередньо в каталозі користувачів.

Я спробував пропозицію тут , написане нижче:

Привіт, у мене може бути рішення

  • Скопіюйте папку anaconda3, розміщену в "Переміщені елементи", на / Користувачі / моє ім'я /
  • Відкритий термінал
  • Введіть: export PATH = '' / Користувачі / моє ім'я / anaconda3 / bin: $ PATH "
  • Введіть: conda init zsh

Це спрацювало! Удачі!

Але це не працює для мене. Після conda init zshотримання:

-bash: / Користувачі / USER / anaconda3 / bin / conda: / anaconda3 / bin / python: поганий перекладач: Немає такого файлу чи каталогу

Як я можу знову запустити та запустити Conda, не втрачаючи всіх своїх віртуальних середовищ? Дякую!


Оновлення

Я змусив Conda працювати за пропозицією @Ted Shaowang. Це означає, що conda env listвідображаються всі віртуальні середовища, створені через Conda.

Однак у мене все ще виникає проблема virtualenv, оскільки я змінив розташування файлів anaconda3 за замовчуванням, python не можна знайти.

Виконаного файлу python, розташованого у, .virtualenvs/env/bin/pythonнеможливо знайти. Чи потрібно вносити подальші зміни для того, щоб пітон також працював virtualenv?


З вашої помилки виглядає, що ви все ще використовуєте bash, але пропоноване рішення призначено для zsh(новий Catalina за замовчуванням). Спробуйте conda init bashзамість цього.
merv

Я отримав таку ж помилку. bashтеж не працює.
Каймал

Відповіді:


6

У мене точно така ж проблема, і для мене це працює:

Після того, як ви рухаєтеся анаконда з «переселено Items» , щоб ~/anaconda3редагувати перший рядок ~/anaconda3/bin/condaфайлу від #!/anaconda3/bin/pythonдо , #!/Users/USERNAME/anaconda3/bin/pythonщоб відобразити зміни.


1
Чи впливає цей параметр на піп і налаштування Юпітера?
rrz0

1
Схоже, це не вирішує всіх питань, пов'язаних з anaconda3 та python. Я отримую помилку: Не вдається запустити програму. "/Users/USER/.virtualenvs/env/bin/python"Немає такого файлу чи каталогу. Коли я заходжу в Finder, файл дійсно відсутній і його неможливо знайти.
rrz0

3

Я, мабуть, утримався б від використання зазначеного рішення. У цьому ~/anaconda3/binкаталозі є безліч застосунків (не лише condaодного), які потрібно було б змінити в цьому ручному способі. Наприклад, якщо ви не зробите однакову зміну, ви не можете запустити jupyter notebookні з боку, baseні з інших оточуючих, які у вас можуть бути.

Моя порада: Спробуйте отримати файл вимог до ваших віртуальних оточень та зробіть нову інсталяцію. Ви можете використовувати pipreqsвимоги, що використовуються для окремих проектів: https://www.idiotinside.com/2015/05/10/python-auto-generate-requirements-txt/


Дякую за пропозицію. Як ви кажете, питання також залишається проблемою virtualenv.
rrz0

3
Перегляньте повідомлення в блозі, в якому рекомендують інструмент для виправлення: anaconda.com/…
msarahan


1

Технічно це перевстановлення анаконди, однак я відновив усі мої конди, так що, сподіваюся, це прийнятне рішення!

Ось як я отримав це, працюючи над Catalina за кілька хвилин тому (зараз використовую z-shell): - Перевірив існування каталогу «Переселених елементів» на моєму робочому столі та каталогу «anaconda3» та його вмісту всередині - Навігації в envs каталог під "anaconda3" і залишив відкритим вікно пошуку (див. скріншот)

введіть тут опис зображення

ТОДІ:

  • відкрили новий термінал (z-shell)
  • run (це встановлено в / usr / local / anaconda3):

    встановити анаконду

  • після успішної установки я відкрив файл ~ / .zshrc (для псевдонімів z-shell) і додав наступний рядок:

    експортувати PATH = "/ usr / local / anaconda3 / bin: $ PATH"

  • збережено мій файл ~ / .zshrc, а потім перезавантажено:

    джерело ~ / .zshrc

  • щоб перевірити, чи працює команда conda, я запустив:

    conda env list

  • для мене це показало базове оточення і це було все

  • потім відкрийте Finder до нового envs-місця: відкрити / usr / local / anaconda3 / envs /.

  • Я перетягнув (перемістив) всі мої старі переходи в нову папку envs, а потім побіг:

    conda env list

І всі мої старі ворота повернулися! :)

  • оновив мій шлях для інтерпретатора PyCharm / env, щоб відобразити нові місця цих envs (довелося перезапустити PyCharm після, але тепер це працює!)
  • Зроблено

Дякуємо за вашу пропозицію. Це virtualenvтеж працює? У мене є деякі, virtualenvsякі я не в змозі використовувати в Pycharm, оскільки я продовжую отримувати `Помилка: не можна запустити програму" /Users/USER/.virtualenvs/baseline_env/bin/python "Немає такого файлу чи каталогу." У Finder я також отримую"The original item python cannot be found.
rrz0

1
Перегляньте публікацію в блозі, де рекомендується інструмент для виправлення більше розірваних зв’язків: anaconda.com/…
msarahan

1
@ Rrz0 на основі написаного вами, мабуть, шлях до virtualenv невірний. Це хакі, але якщо ви можете дістатись до свого virtualenv, я думаю, ви повинні мати можливість скопіювати шлях до нього та відредагувати записи в PyCharm (якщо virtualenvs є в угоді про переміщені елементи, то я не знаю, куди вам порадити поставте їх) - Якщо ви можете дістатися до своїх старих virtualenvs, ви можете (по одному) активувати їх з оболонки та запустити: pip freeze> требования_VENV_NAME.txt - в PyCharm створюйте нові virtualenvs - активуйте кожен новий virtualenv і запустіть: pip install - r
Phil S

Дякую @PhilS, щось у цьому напрямку працювало.
rrz0

0

Не впевнений, чи вважається це коментарем чи хоча б тимчасовою відповіддю, але я б утримався від спроб виправити будь-які проблеми сумісності Catalina з Anaconda. Дивіться цю проблему GitHub .


0

У мене така ж проблема, і ця робота для мене: Моє рішення:

  1. Скопіюйте свою анаконду3 із папки «Переселені предмети»
  2. Вставити користувач / YourUserName
  3. Відкрийте файл conda в anaconda3 / bin з редактором та відредагуйте перший рядок #!/anaconda3/bin/pythonу#!/Users/YourUserName/anaconda3/bin/python
  4. Збережіть його та запустіть файл conda
  5. Відкритий термінал
  6. Виконати це: export PATH=''/Users/YourUserName/anaconda3/bin:$PATH"
  7. Біжи conda init zsh

Чи потрібно вносити подальші зміни для того, щоб пітон також працював virtualenv, наприклад?
rrz0

0

У мене виникло те саме питання, і наступне рішення працювало на мене, і це найпростіше рішення:

Замість того, щоб заплутатись над копіюванням файлу anaconda3 з переміщених елементів у каталог User / USERNAME, краще просто перевстановити останню версію навігатора Anaconda зі свого офіційного веб-сайту: https://www.anaconda.com/distribution/#macos

Під час встановлення він запитає у вас деякі дозволи, які є результатом нових політик безпеки Apple, просто надайте їх, і він працює так, як слід після цієї свіжої установки!


0

Це те, що працювало для мене.

Це мої файли заголовків (Каталіна 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

Біжи, sudo find /Library -name stdio.hщоб побачити, де ти знаходиться.

Файли заголовків Mojave 10.14:

$ 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

Як видно, SDK тепер розбиті на MACOSX10.14 та 10.15 на відміну від Mojave.

TLDR

Отже, це були мої папки SDK на Каталіні:

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

  1. Перейменувати MacOSX.sdkнаMacOSX_orig.sdk
  2. Клацніть правою кнопкою миші на MacOSX10.14.sdk
  3. Дублікат
  4. Перейменуйте дублюючу папку в MacOSX.sdk

Структура вашої папки тепер має виглядати так:

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

Так, ми в основному використовуємо OSX попередньої версії як sysroot. Сподіваюсь, це допомагає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.