Как Anaconda обрабатывает установленные с помощью pip пакеты и другие настройки, когда изменяется дополнительная версия Python? - PullRequest
0 голосов
/ 14 января 2019

Допустим, у меня есть установка Anaconda Python, скажем, это Python 3.7, а я:

  • pip-install пара пакетов, которые заканчиваются на ~/anaconda3/lib/python3.7/site-packages.

  • Добавьте пользовательский файл .pth в пакеты сайтов, чтобы модули, хранящиеся где-то еще, были включены в путь импорта Python.

Позже выйдет Python 3.8. Я печатаю conda install python==3.8. Conda удаляет все версии Python 3.7 всех пакетов, которые она отслеживает, и вместо этого устанавливает версии Python 3.8, которые к тому времени находятся в своих репозиториях.

Что происходит с пакетами, которые я установил pip? Они просто остались в ~/anaconda3/lib/python3.7/site-packages, где Python 3.8 их не увидит (он смотрит в ~/anaconda3/lib/python3.8/site-packages)? Что происходит с моим .pth файлом? Точно так же он оставлен там, где он не будет иметь никакого эффекта?

Я распространяю программное обеспечение Python, которое во время установки добавляет каталоги своих модулей (которые хранятся в другом месте в системе) к пути поиска Python, добавляя такой файл .pth в пакеты сайтов интерпретатора Python, который использовался для установки Это. Это также зависит от количества пакетов, отсутствующих в репозиториях conda, которые наша документация рекомендует пользователю устанавливать через pip. Я обеспокоен тем, что будущие обновления Python, которые могут показаться безобидными пользователям этого программного обеспечения (которые почти исключительно используют Anaconda), могут нарушить установку нашего программного обеспечения.

Хотя это программное обеспечение использовалось годами, оно было на Python 2.7 так долго, что я не видел, что происходит в этой ситуации. Текущая версия anaconda также имеет ошибку или неразрешимую зависимость, так что она просто зависает, если я пытаюсь понижать Python до другой версии, поэтому я не смог проверить, что случается.

1 Ответ

0 голосов
/ 14 января 2019

Копирование и вставка из ответа, который я получил здесь :


Позже выйдет Python 3.8. Я набираю conda установить python == 3.8. Конда удаляет все версии Python 3.7 всех пакетов, которые она отслеживает, и устанавливает вместо этого версии Python 3.8, которые к тому времени Хранилища.

Вы уверены, что он удаляет версии 3.7? но все равно:

Что происходит с пакетами, которые я установил pip? Они просто остались в

~ / anaconda3 / lib / python3.7 / site-packages, где Python 3.8 их не увидит (Это выглядит в ~ / anaconda3 / lib / python3.8 / site-packages)? Что происходит с мой файл .pth? Точно так же он оставлен там, где он не будет иметь никакого эффекта?

да, они будут либо оставлены там в 3.7, либо удалены. Как правило, 3,7 пакеты не обязательно совместимы с 3.8, поэтому вы не хотите их переехал.

вы захотите, чтобы люди повторили ваш процесс isntall с 3.8, так же, как вы будет с системой, не основанной на conda.

Я распространяю программное обеспечение Python, которое во время установки добавляет свой модуль

каталоги (которые хранятся в другом месте в системе) для поиска Python путь, добавив такой файл .pth к пакетам сайта интерпретатора Python который был использован для его установки.

почему бы не сделать из них пакеты, которые устанавливаются обычным способом? В этом отношении, Вы также можете поставить пакеты conda, если хотите полностью поддерживать conda.

Это также зависит от количества пакетов, не входящих в репозитории conda, которые наша документация рекомендует пользователю устанавливать через pip.

Это что-то вроде подъема, но вы могли бы внести эти пакеты в conda-forge, и тогда ваши пользователи могут установить all-conda, которая сделает все это проще.

Я обеспокоен будущими обновлениями Python, которые могут показаться безобидными пользователям это программное обеспечение (которые почти исключительно используют Anaconda) может сломать установка нашего программного обеспечения.

Я думаю, что это действительно риск - но если ваши пользователи в основном используют Анаконда, затем предоставляя им все необходимые пакеты кондо (включая вашу собственную) сделает это проще.

...