Подтвердить что ты не робот

Anaconda: любой способ указать, что проблемы с зависимостями препятствуют "обновлению конды" с последней версией модуля * absolute *?

Недавно я обнаружил, что моя numpy установка (MacOS с anaconda) была на старой версии 1.11.x вместо последней 1.12.0, когда функция, задокументированная на их веб-сайте, не была найдена. Когда я conda update numpy, мне скажут, что установка обновлена. Наконец, после попытки принудительной conda install numpy=1.12.0 обнаружилась ошибка, указывающая на то, что у пакетов были проблемы с зависимостями - оказалось, что для моей установки astropy (которую я даже не использую) требуется numpy версия 1.11.x. После удаления astropy и установки numpy обновление до версии 1.12.0 прошло успешно.

Меня действительно беспокоит то, что анаконда не сделала никаких уведомлений о том, что игнорирует последнюю версию с numpy из-за проблем с зависимостями. Есть ли способ принудительно отобразить какое-то предупреждение или флаг?

Редактировать: я вижу из этой ветки github, что в данный момент нет никакого способа сделать это. Хотя, возможно, до тех пор, пока разработчики не добавят эту функцию, есть немного хакерский способ сделать это с помощью скрипта BASH - что-то вроде запроса самой последней доступной версии, затем установки и сравнения двух версий версий.

4b9b3361

Ответ 1

Вы спрашиваете, можно ли написать код, который будет проверять каждую строку environment.yml и сообщать, является ли версия foo = XYZ для foo актуальной, игнорируя другие депрессии в файле (например, astropy), которые могут конфликтовать и, следовательно, удерживать его.

Да.

Напишите script, который выполняет итерацию по каждой строке пакета, срывает и затем восстанавливает новую среду с помощью однострочной среды environment.yml(или даже без этого файла) и устанавливает последнюю версию отдельно. Прочитайте любую версию, которая окажется, сравните с целевой средой environment.yml и сообщите о любых несоответствиях. Если вы напишете script, который окажется полезным, отправьте его здесь.

Ответ 2

Я бы сказал, что использование pip вместо conda решит и эту проблему. При обновлении пакета с помощью pip install --upgrade <package_name> он обновит его до последней версии, совместимой с вашей ОС и версией Python. Однако, если это обновление привело к тому, что установленный пакет перестал быть совместимым, pip выдаст предупреждение, сообщающее именно это.