2017-02-21 48 views
13

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

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

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

ответ

0

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

Да.

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