Как заставить Конду и Virtualenv работать на Mac OS Catalina?

12

Раньше Conda работала на Mojave без сбоев, но я обнаружил, что обновление до Catalina перемещает папку «anaconda3» на рабочий стол> Перемещенные элементы> Безопасность> anaconda3. Похоже, что настройки безопасности Catalina больше не позволяют устанавливать приложения непосредственно в каталоге пользователя.

Я попробовал предложение здесь , написанное ниже:

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

  • Скопируйте папку anaconda3, расположенную в Перемещенных элементах, в / Users / myname /
  • Открытый терминал
  • Введите: export PATH = '' / Users / мое имя / anaconda3 / bin: $ PATH "
  • Введите: conda init zsh

Это сработало! Удачи!

Но это не работает для меня. После того как conda init zshя получу:

-bash: / Users / USER / anaconda3 / bin / conda: / anaconda3 / bin / python: плохой интерпретатор: нет такого файла или каталога

Как я могу снова запустить и запустить Conda, не теряя все свои виртуальные среды? Спасибо!


Обновить

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

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

Исполняемый файл Python, расположенный по адресу, .virtualenvs/env/bin/pythonне найден. Нужно ли вносить дальнейшие изменения, чтобы Python virtualenvтоже работал ?

rrz0
источник
Судя по вашей ошибке, похоже, что вы все еще используете bash, но предлагаемое решение для zsh(новый Catalina по умолчанию). Попробуй conda init bashвместо этого.
Мерв
Я получил ту же ошибку. bashтоже не работает.
Каймал

Ответы:

6

У меня точно такая же проблема, и это работает для меня:

После перемещения anaconda из «Перемещенных элементов» в ~/anaconda3, отредактируйте первую строку ~/anaconda3/bin/condaфайла из #!/anaconda3/bin/pythonв, #!/Users/USERNAME/anaconda3/bin/pythonчтобы отразить изменение.

Тед Шаованг
источник
1
Это влияет на настройки pip и Jupyter?
rrz0
1
Похоже, это не решает все проблемы, связанные с anaconda3 и python. Я получаю сообщение об ошибке: не удается запустить программу "/Users/USER/.virtualenvs/env/bin/python"Нет такого файла или каталога. Когда я проверяю в Finder, файл действительно отсутствует и не может быть найден.
rrz0
3

Я бы, вероятно, воздержался от использования вышеуказанного решения. В этом ~/anaconda3/binкаталоге есть много исполняемых файлов (не только condaодин), которые необходимо изменить вручную. Например, если вы не внесете то же самое изменение, вы не сможете запустить jupyter notebookни из, baseни из других envs, которые вы можете иметь.

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

Кристина Морариу
источник
Спасибо за предложение. Как вы говорите, проблема остается с virtualenv.
rrz0
3
Пожалуйста, смотрите сообщение в блоге, рекомендующее инструмент для исправления этих
проблем
3

Ни одно решение не будет полностью работать без исправления запрограммированных жестко запрограммированных префиксов в файлах. Более подробное описание и рекомендуемое исправление можно найти по адресу https://www.anaconda.com/how-to-restore-anaconda-after-macos-catalina-update/.

msarahan
источник
1

Технически это переустановка anaconda, однако я восстановил все свои conda envs, так что, надеюсь, это приемлемое решение!

Вот как я начал работать с Catalina несколько минут назад (теперь использую z-shell): - проверил наличие каталога «Перемещенные элементы» на моем рабочем столе и каталога «anaconda3» и его содержимого внутри - перешел в каталог envs в "anaconda3" и оставил окно поиска открытым (см. скриншот)

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

ТОГДА:

  • открыл новый терминал (z-shell)
  • побежал (это установлено в / usr / local / anaconda3):

    заварить бочку установить анаконду

  • после успешной установки я открыл файл ~ / .zshrc (для псевдонимов z-оболочки) и добавил следующую строку:

    экспорт PATH = "/ usr / local / anaconda3 / bin: $ PATH"

  • сохранил мой файл ~ / .zshrc, затем перезагрузил его:

    источник ~ / .zshrc

  • чтобы проверить работает ли команда conda, я запустил:

    Конда Env список

  • для меня это показало базовый env и все

  • затем откройте Finder для нового местоположения envs: open / usr / local / anaconda3 / envs /.

  • Я перетащил (переместил) все мои старые envs в новую папку envs и затем запустил:

    Конда Env список

И все мои старые envs вернулись! :)

  • обновил мои пути интерпретатора / env PyCharm, чтобы отразить новые местоположения этих 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> needs_VENV_NAME.txt - в PyCharm создайте новые virtualenvs - активируйте каждый новый virtualenv и запустите: pip install - r требования_VENV_NAME.txt
Фил С
Спасибо @PhilS, что-то в этом роде сработало.
rrz0
0

Не уверен, считается ли это комментарием или хотя бы временным ответом, но я пока воздержусь от попыток исправить какие-либо проблемы совместимости Catalina с Anaconda. Смотрите эту проблему GitHub .

Шон Вангник
источник
0

У меня та же проблема, и эта работа для меня: Мое решение:

  1. Скопируйте anaconda3 из папки «Перемещенные элементы»
  2. Вставить в User / 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
ТАНК НК
источник
Нужно ли вносить дальнейшие изменения, чтобы Python virtualenvтоже работал , например?
rrz0
0

Я столкнулся с той же проблемой, и у меня сработало следующее решение, и это самое простое решение:

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

Во время установки вам будут заданы некоторые разрешения, которые являются результатом новых политик безопасности Apple, просто предоставьте их, и все будет работать так, как должно быть после этой новой установки!

шрейас лабсетвар
источник
0

Это то, что сработало для меня.

Это мои заголовочные файлы (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

Беги, 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 SDK предыдущей версии в качестве sysroot. Надеюсь это поможет.

rrz0
источник