Как заменить конфигурацию Python для Homebrew на Conda? - PullRequest
1 голос
/ 03 апреля 2019

В настоящее время у меня довольно сложная конфигурация Python , которая развивалась годами, и я бы хотел ее почистить и "модернизировать".

Существующая конфигурация имеет MacOS Python по умолчанию, и Python 3 Homebrew и Python 2 все существуют бок о бок, вместе со связанными с ними пипсами. У меня также есть некоторые инструменты командной строки python, которые создали эти Pythons или связанные с ними установленные пакеты и которые я использую более или менее часто.

Я бы хотел сделать следующее:

  • Оставьте MacOS Python нетронутым
  • Ликвидация всех доморощенных питонов
  • Полностью удалить не MacOS Python 2
  • Переключиться на Conda Python как мой Python 3
  • Иметь доступ к mkvirtualenv (в качестве альтернативы созданию сред) с virtualenvwrapper
  • Иметь доступ к Jupyter

Я не уверен, как это сделать, не создавая проблем, и хочу подтвердить, что очевидная вещь безопасна:

  1. используйте Homebrew для удаления своих питонов,
  2. установить Conada, а затем
  3. используйте (Conda's) pip для установки mkvirtualenv, virtualenvwrapper и Jupyter (и любые другие инструменты, которые мне впоследствии понадобятся)

Это правильная процедура? Есть ли особые формы команд, которые я должен использовать, или опции, которые я должен выбрать для них?

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

Сначала установите анаконду или миниконду.Установка является неразрушающей и не конфликтует с другими вашими установками Python.Убедитесь, что это работает, прежде чем рассматривать возможность удаления установленных Pythons для homebrew.

Команда conda используется как в качестве менеджера пакетов, так и в качестве менеджера среды.Нельзя избежать создания среды conda: установка по умолчанию уже является частью среды с именем base.Я не уверен, зачем вам это нужно.

Вы можете использовать pip для установки любого пакета, который вы выберете, в среду conda, но так как вы можете использовать conda install для любого пакета, доступного на любомКанал conda (например, «по умолчанию», «conda-forge»), использование pip часто является избыточным.

Вы можете использовать виртуальные среды не-conda, но опять же: почему?conda create -n foo python=x.x jupyter #etc, а затем conda activate foo - это все, что вам нужно для его запуска.

0 голосов
/ 03 апреля 2019

Самая большая и / или первая проблема заключается в том, как не нарушать существующую функциональность, основанную на Python. Здесь есть два широких лагеря:

1) инструменты и другие скрипты, которые жестко кодируют местоположение исполняемого файла Python, и

2) инструменты и другие скрипты, использующие системную переменную PATH.

# 1 проще. Если вы не собираетесь удалять какие-либо версии Python, то это вообще не работа ... они будут работать. Если вы действительно хотите удалить некоторые версии Python, вам придется поработать, чтобы переключить все инструменты, основанные на тех версиях, которые вы хотите удалить, на другую версию, которая также работает для этого инструмента. Обсуждаемый путь обычно находится в строке shebang ('#! Xxx') в верхней части каждого основного двоичного файла Python, но существуют и другие способы формирования пути к двоичному файлу Python. Короче, зачем что-то удалять? Дисковое пространство дешево. Возможно, вместо этого просто убедитесь, что на эти нежелательные версии не ссылаются никакие переменные PATH.

# 2 самый сложный. Это не обязательно тот случай, когда все инструменты в этой категории используют версию Python, которую вы получаете, когда вы просто набираете «python» в командной строке для своей основной учетной записи. Могут быть другие режимы работы, которые по-разному инициализируют среду выполнения (переменную PATH), и поэтому могут работать разные версии Python, несмотря на то, что это зависит от значения PATH.

Часть # 2 обеспокоена не только ссылками на "python", но и "python2", "python3" и, возможно, другими вариантами.

Только после того, как у вас есть план действий с вышеперечисленным, чтобы вы не ломали вещи, вы можете беспокоиться о возможности избавиться от версий Python и установки новых. Надеемся, что Brew отлично справится с удалением установленных версий, поэтому, если вы сможете удалить зависимости от одной или нескольких из них, их можно легко удалить. Если у вас есть самостоятельно установленные версии Python, их также легко удалить, просто удалив ссылки на них в переменных PATH (или нет ... это не должно быть большой проблемой, если вы пропустите некоторые из них), а затем удалите установить каталог.

Затем добавляются новые версии Python. Это может повлиять только на № 2 выше. Вы должны подумать об этом и знать, какое влияние вы окажете, если новые установки установят какие-либо переменные PATH. Если он манипулирует только ПУТЬ вашего собственного пользователя или оставляет это вам, это намного проще для понимания, но любое изменение среды - это шанс сломать существующую функциональность.

Наконец, есть механизмы выбора различных версий Python для новой разработки, включая использование виртуальных сред. Это, вероятно, самая простая часть, поскольку вы можете проводить исследования, пробовать что-то и проверять, что вы можете делать все, что захотите. Эта часть проблемы является самой ограниченной.

Я ничего не знаю о Юпитере, кроме смутного знания, что это такое, поэтому я не знаю, как это все усложняет.

ОБНОВЛЕНИЕ: последнее замечание. Как вы, возможно, уже знаете, Python хорошо изолирует себя от каждой версии, сохраняя свою уникальную идентичность. Если вы используете правильные «pip» и «easy_install», которые находятся рядом с двоичным файлом «python», с которым вы собираетесь работать, вы должны четко воздействовать только на эту одну среду. Я не могу знать, что это так просто для всех версий Python, но я никогда не видел, чтобы это соглашение нарушалось версией Python, которую я использовал. Сложности здесь, конечно, связаны с тем, какие версии этих инструментов вы получаете в различных ситуациях, когда они обнаруживаются через переменную PATH.

...