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

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

# List the history of each change to the current environment 
conda list --revisions
# Restore environment to a previous revision 
conda install --revision 2

Лучше всего объяснить это на небольшом примере. Если вы запустите conda list –revision, вы получите следующий результат:

2017-04-18 23:29:36  (rev 1)
     requests  {2.12.3 -> 2.13.0}

2018-05-30 19:41:47  (rev 2)
     mkl  {11.3.3 -> 2018.0.2}
     numpy  {1.11.2 -> 1.14.3}
     pip  {9.0.1 -> 10.0.1}
     python  {2.7.12 -> 3.6.5}
     scikit-learn  {0.17.1 -> 0.19.1}
     scipy  {0.18.1 -> 1.1.0}
     setuptools  {27.2.0 -> 39.1.0}
     wheel  {0.29.0 -> 0.31.1}
    +blas-1.0
    +certifi-2018.4.16
    +icc_rt-2017.0.4
    +intel-openmp-2018.0.0
    +mkl_fft-1.0.1
    +mkl_random-1.0.1
    +numpy-base-1.14.3
    +vc-14
    +vs2015_runtime-14.0.25123
    +wincertstore-0.2

Как вы можете видеть в выходных данных, в нем перечислены все ревизии вместе с обновленными пакетами (старая версия - ›новая версия) и вновь добавленными пакетами (тот, который отмечен символом +). Итак, теперь вы знаете, какие изменения были внесены в каждую ревизию, вы можете безопасно вернуться к предыдущим версиям вашей среды, используя conda install –revision revision number.

В моем случае я вернулся к версии 1, поэтому после отката, когда я снова запускаю conda list –revisions, я могу видеть изменения, сделанные при откате.

2018-05-30 20:08:46  (rev 3)
     mkl  {2018.0.2 -> 11.3.3}
     numpy  {1.14.3 -> 1.11.2}
     pip  {10.0.1 -> 9.0.1}
     python  {3.6.5 -> 2.7.12}
     scikit-learn  {0.19.1 -> 0.17.1}
     scipy  {1.1.0 -> 0.18.1}
     setuptools  {39.1.0 -> 27.2.0}
     wheel  {0.31.1 -> 0.29.0}
    -blas-1.0
    -certifi-2018.4.16
    -icc_rt-2017.0.4
    -intel-openmp-2018.0.0
    -mkl_fft-1.0.1
    -mkl_random-1.0.1
    -numpy-base-1.14.3
    -vc-14
    -vs2015_runtime-14.0.25123
    -wincertstore-0.2

Вы можете видеть, что изменения в редакции 3 - это просто обратные изменения в редакции 2.

Это пригодится, если вы случайно испортите свою среду.

Больше информации:

Руководство пользователя Conda: https://conda.io/docs/user-guide/tasks/manage-environments.html

Шпаргалка по Conda: https://conda.io/docs/_downloads/conda-cheatsheet.pdf

Если у вас есть предложения, дайте мне знать в твиттере: @Sriramjaju

Намасте!