как я могу отменить обновление pip

#python #pip

Вопрос:

Я только что выполнил следующую команду,

 pip install --upgrade ipykernel  

Тем не менее, я получил

 Requirement already satisfied: ipykernel in ./anaconda3/lib/python3.8/site-packages (5.3.4) Collecting ipykernel  Downloading ipykernel-6.5.0-py3-none-any.whl (125 kB)  |████████████████████████████████| 125 kB 4.3 MB/s  Collecting ipythonlt;8.0,gt;=7.23.1  Downloading ipython-7.29.0-py3-none-any.whl (790 kB)  |████████████████████████████████| 790 kB 9.2 MB/s  Collecting debugpylt;2.0,gt;=1.0.0  Downloading debugpy-1.5.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.9 MB)  |████████████████████████████████| 1.9 MB 126.8 MB/s  Collecting matplotlib-inlinelt;0.2.0,gt;=0.1.0  Downloading matplotlib_inline-0.1.3-py3-none-any.whl (8.2 kB) Collecting traitletslt;6.0,gt;=5.1.0  Downloading traitlets-5.1.1-py3-none-any.whl (102 kB)  |████████████████████████████████| 102 kB 20.5 MB/s  ...  Requirement already satisfied: python-dateutilgt;=2.1 in ./anaconda3/lib/python3.8/site-packages (from jupyter-clientlt;8.0-gt;ipykernel) (2.8.1)  Requirement already satisfied: ptyprocessgt;=0.5 in ./anaconda3/lib/python3.8/site-packages (from pexpectgt;4.3-gt;ipythonlt;8.0,gt;=7.23.1-gt;ipykernel) (0.7.0)  Requirement already satisfied: wcwidth in ./anaconda3/lib/python3.8/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,lt;3.1.0,gt;=2.0.0-gt;ipythonlt;8.0,gt;=7.23.1-gt;ipykernel) (0.2.5)  Requirement already satisfied: sixgt;=1.5 in ./anaconda3/lib/python3.8/site-packages (from python-dateutilgt;=2.1-gt;jupyter-clientlt;8.0-gt;ipykernel) (1.15.0)  Installing collected packages: traitlets, matplotlib-inline, ipython, debugpy, ipykernel  Attempting uninstall: traitlets  Found existing installation: traitlets 5.0.5  Uninstalling traitlets-5.0.5:  Successfully uninstalled traitlets-5.0.5  Attempting uninstall: ipython  Found existing installation: ipython 7.22.0  Uninstalling ipython-7.22.0:  Successfully uninstalled ipython-7.22.0  Attempting uninstall: ipykernel  Found existing installation: ipykernel 5.3.4  Uninstalling ipykernel-5.3.4:  Successfully uninstalled ipykernel-5.3.4  ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.  spyder 4.2.5 requires pyqt5lt;5.13, which is not installed.  spyder 4.2.5 requires pyqtwebenginelt;5.13, which is not installed.  conda-repo-cli 1.0.4 requires pathlib, which is not installed.  Successfully installed debugpy-1.5.1 ipykernel-6.5.0 ipython-7.29.0 matplotlib-inline-0.1.3 traitlets-5.1.1  

Я хотел бы отменить свою команду, так как некоторые из моих кодов внезапно перестают работать . Возможно ли это? Спасибо!

Похоже, установлено много пакетов.

Обновление, так что у меня на самом деле был свой environment.yaml от моего предыдущего conda env export gt; environment.yaml

Если я это сделаю

 conda env update --file environment.yaml --prune  

Это не помогает мне вернуться к моим предыдущим версиям…. Могу ли я вернуть свою базовую среду обратно в точно такую же среду.yaml?

Комментарии:

1. Нечего возвращать. pip ничего не обновил из — за конфликта зависимостей

2. на самом деле сделаны некоторые обновления. Я не вывел полное сообщение. Похоже, он изменил некоторые зависимости.

3. В этом случае смотрите ответ casualsciences. Это немного облом, потому что вам придется вручную исправлять каждый pkg, но это приведет вас туда, куда вы хотите

Ответ №1:

Я не верю, что pip хранит историю установленных пакетов. Если при обновлении у вас был текстовый вывод с терминала, pip выводит список пакетов, которые будут установлены, какая версия у вас была и какой версией вы ее заменяете. Вы можете вручную вернуть каждый пакет, выполнив

pip uninstall lt;package_namegt; amp;amp; pip install lt;package_namegt;==lt;version_numbergt;

Правка: Основываясь на ваших правках, я предлагаю вам опубликовать этот вопрос с точки зрения вашей среды conda. Это совершенно другая система, хотя она и использует pip.

В качестве примечания, возможно, вам сойдет с рук просто бег

 pip install traitlets==5.0.5 pip install ipykernel==5.3.4 pip install ipython==7.22.0  

Комментарии:

1. Ах! Большое спасибо! ты спас мне день! Затем я пытаюсь придумать более общие методы на случай, если что-то подобное повторится в будущем

2. @hg628193hg Я знаю, что вы можете попросить пипа сохранить журналы с помощью опции —log (конечно, вы можете сделать то же самое вручную, используя tee ), это тоже нужно учитывать.