Как заставить Конду и Virtualenv работать на Mac OS Catalina? - PullRequest
11 голосов
/ 08 октября 2019

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

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

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

  • Скопируйте папку anaconda3, расположенную в Перемещенных элементах, в / Users / myname /
  • Открытый терминал
  • Введите: export PATH = '' /Пользователи / мое имя / 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 тоже?

Ответы [ 8 ]

5 голосов
/ 09 октября 2019

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

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

1 голос
/ 10 ноября 2019

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

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

  1. Переименование MacOSX.sdk в MacOSX_orig.sdk
  2. Щелкните правой кнопкой мыши MacOSX10.14.sdk
  3. Duplicate
  4. Переименуйте дубликат папки в MacOSX.sdk

Ваша структура папок теперь должна выглядеть следующим образом:

<img width= ">

Таким образом, мы в основном используем OSX SDK предыдущей версии в качестве sysroot. Надеюсь, это поможет.

1 голос
/ 11 октября 2019

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

1 голос
/ 09 октября 2019

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

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

enter image description here

ТО:

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

    brew cask install anaconda

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

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

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

    source ~ / .zshrc

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

    список conda env

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

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

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

    список conda env

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

  • обновил мои пути интерпретатора / env PyCharm, чтобы отразить новые местоположения этих envs (пришлось перезапустить PyCharm после, но теперь это работает!)
  • DONE
1 голос
/ 09 октября 2019

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

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

0 голосов
/ 10 октября 2019

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

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

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

0 голосов
/ 10 октября 2019

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

  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
0 голосов
/ 09 октября 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...