Удалите Jupyter с помощью пункта
У меня есть jupyter
исполняемый файл здесь: /usr/local/bin/jupyter
Исторически я знаю, что использую Python 2 из дистрибутива Ubuntu (без Anaconda), поэтому я думаю, что jupyter
пришел из системы pip2
установить, но я не могу найти способ доказать это, есть ли?
Предполагая предыдущий сценарий, я сделал это: sudo /usr/local/bin/pip2 uninstall jupyter
и это sudo /usr/local/bin/pip2 uninstall notebook
(даже если в /usr/local/bin
Мне все еще нужно sudo
потому что, кажется, все файлы там принадлежат root
по какой-то причине), но я продолжаю видеть этот исполняемый файл здесь: /usr/local/bin/jupyter
Также: я знаю, что jupyter
затронут, потому что теперь команда: jupyter notebook
дает этот вывод Error executing Jupyter command 'notebook': [Errno 2] No such file or directory
,
Как мне удалить его? Зачем pip2
не удаляет этот исполняемый файл?
Редактировать:
В настоящее время я вижу это на моей файловой системе:
ls -lah /usr/local/bin | grep jupyter
-rwxr-xr-x 1 root root 222 May 6 2017 jupyter
-rwxr-xr-x 1 root root 221 May 6 2017 jupyter-console
-rwxr-xr-x 1 root root 264 May 6 2017 jupyter-kernelspec
-rwxr-xr-x 1 root root 222 May 6 2017 jupyter-migrate
-rwxr-xr-x 1 root root 224 May 6 2017 jupyter-nbconvert
-rwxr-xr-x 1 root root 224 May 6 2017 jupyter-qtconsole
-rwxr-xr-x 1 root root 243 May 6 2017 jupyter-run
-rwxr-xr-x 1 root root 227 May 6 2017 jupyter-troubleshoot
-rwxr-xr-x 1 root root 255 May 6 2017 jupyter-trust
Когда unistalling jupyter
Я видел это:
sudo pip2 uninstall jupyter
[sudo] password for <MY_USERNAME>:
The directory '/home/<MY_USERNAME>/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Uninstalling jupyter-1.0.0:
/usr/local/lib/python2.7/dist-packages/jupyter-1.0.0.dist-info/DESCRIPTION.rst
/usr/local/lib/python2.7/dist-packages/jupyter-1.0.0.dist-info/INSTALLER
/usr/local/lib/python2.7/dist-packages/jupyter-1.0.0.dist-info/METADATA
/usr/local/lib/python2.7/dist-packages/jupyter-1.0.0.dist-info/RECORD
/usr/local/lib/python2.7/dist-packages/jupyter-1.0.0.dist-info/WHEEL
/usr/local/lib/python2.7/dist-packages/jupyter-1.0.0.dist-info/metadata.json
/usr/local/lib/python2.7/dist-packages/jupyter-1.0.0.dist-info/pbr.json
/usr/local/lib/python2.7/dist-packages/jupyter-1.0.0.dist-info/top_level.txt
/usr/local/lib/python2.7/dist-packages/jupyter.py
/usr/local/lib/python2.7/dist-packages/jupyter.pyc
Proceed (y/n)? y
Successfully uninstalled jupyter-1.0.0
The directory '/home/<MY_USERNAME>/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Когда unistalling notebook
Я видел это:
sudo pip2 uninstall notebook
The directory '/home/<MY_USERNAME>/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Uninstalling notebook-5.0.0:
/usr/local/bin/jupyter-bundlerextension
/usr/local/bin/jupyter-nbextension
/usr/local/bin/jupyter-notebook
/usr/local/bin/jupyter-serverextension
/usr/local/lib/python2.7/dist-packages/notebook-5.0.0.dist-info/DESCRIPTION.rst
[...]
/usr/local/lib/python2.7/dist-packages/notebook/tree/tests/__init__.pyc
/usr/local/lib/python2.7/dist-packages/notebook/tree/tests/test_tree_handler.py
/usr/local/lib/python2.7/dist-packages/notebook/tree/tests/test_tree_handler.pyc
/usr/local/lib/python2.7/dist-packages/notebook/utils.py
/usr/local/lib/python2.7/dist-packages/notebook/utils.pyc
/usr/local/lib/python2.7/dist-packages/notebook/view/__init__.py
/usr/local/lib/python2.7/dist-packages/notebook/view/__init__.pyc
/usr/local/lib/python2.7/dist-packages/notebook/view/handlers.py
/usr/local/lib/python2.7/dist-packages/notebook/view/handlers.pyc
Proceed (y/n)? y
Successfully uninstalled notebook-5.0.0
The directory '/home/<MY_USERNAME>/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
2 ответа
Я пытался воспроизвести ваш сценарий, и у меня не установлен Jupyter. Итак, сначала:
sudo pip2 install jupyter
Он загрузил jupyter, а также довольно много других пакетов, но завершился сначала ошибкой, а затем, при повторном запуске, несколько раз с:
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c _scandir.c -o build/temp.linux-x86_64-2.7/_scandir.o
_scandir.c:14:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Тем не менее, похоже, что по крайней мере исполняемый файл jupyter уже установлен:
$ jupyter
usage: jupyter [-h] [--version] [--config-dir] [--data-dir] [--runtime-dir]
[--paths] [--json]
[subcommand]
jupyter: error: one of the arguments --version subcommand --config-dir --data-dir --runtime-dir --paths is required
$ whereis jupyter
jupyter: /usr/local/bin/jupyter
Но когда я попытался удалить его:
sudo -H pip2 uninstall jupyter
Skipping jupyter as it is not installed.
В случае, если вы получили то же самое при удалении, проблема может быть в том, что jupyter не был установлен правильно с самого начала.
Тем не менее, я наконец смог правильно установить его, установив заголовки разработчика Python: sudo apt install python-dev
, И да, sudo pip2 uninstall jupyter
выполнено успешно, но я все еще мог бежать /usr/local/bin/jupyter
после этого.
Удаление jupyter-console
пакет (найден через pip-autoremove -L
) тоже не добился цели, хотя по имени можно подумать, что так и должно быть.
Но потом я попытался сделать это старым способом "Norton Commander", чтобы проверить, что внутри /usr/local/bin/jupyter
, К счастью, это просто простой код Python, и я заметил интересную ссылку на пакет в строке 7:
from jupyter_core.command import main
И тогда это было сделано!
$ jupyter
usage: jupyter [-h] [--version] [--config-dir] [--data-dir] [--runtime-dir]
[--paths] [--json]
[subcommand]
jupyter: error: one of the arguments --version subcommand --config-dir --data-dir --runtime-dir --paths is required
$ sudo -H pip2 uninstall jupyter-core
Uninstalling jupyter-core-4.4.0:
Would remove:
/usr/local/bin/jupyter
/usr/local/bin/jupyter-migrate
/usr/local/bin/jupyter-troubleshoot
/usr/local/lib/python2.7/dist-packages/jupyter.py
/usr/local/lib/python2.7/dist-packages/jupyter_core-4.4.0.dist-info/*
/usr/local/lib/python2.7/dist-packages/jupyter_core/*
Proceed (y/n)? y
Successfully uninstalled jupyter-core-4.4.0
$ jupyter
bash: /usr/local/bin/jupyter: No such file or directory
Так что вся проблема в pip
не удаляя на uninstall
зависимости, которые он автоматически загружал во время install
..
ОБНОВЛЕНИЕ: Относительно сообщений, с которыми вы столкнулись при удалении Юпитера / ноутбука - я не получил ни одного из них, но, похоже, они не связаны с обсуждаемой проблемой:
Каталог /home//.cache/pip/http или его родительский каталог не принадлежат текущему пользователю, и кэш отключен. Пожалуйста, проверьте разрешения и владельца этого каталога. Если вы выполняете pip с помощью sudo, вам может потребоваться флаг -H у sudo.
Я также получаю это, если я бегу sudo pip <anything>
не sudo -H pip <anything>
, Кажется безвредным.
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
У меня уже есть пип 10.0.1 - вот почему я этого не вижу.
За исключением этих предупреждений, как я вижу, оба пакета удаляются корректно.
Относительно необходимости sudo
Не удивлюсь как обычно pip install *
устанавливает пакет для всей системы, и вряд ли вы сможете писать в /usr/local/lib/python*
без рута. Параметр --user
существует в pip, чтобы обойти это, более подробный ответ здесь: https://stackoverflow.com/questions/42988977/what-is-the-purpose-pip-install-user
Я удалил Jupyter, используя следующие строки кода, поэтому попробуйте.
$ sudo -H python3 -m pip uninstall jupyter_core jupyter_qtconsole nbformat nbconvert notebook
Uninstalling jupyter-core-4.4.0:
Would remove:
/usr/bin/jupyter
/usr/bin/jupyter-migrate
/usr/bin/jupyter-troubleshoot
/usr/lib/python3/dist-packages/jupyter.py
/usr/lib/python3/dist-packages/jupyter_core
/usr/lib/python3/dist-packages/jupyter_core-4.4.0.egg-info
Uninstalling nbformat-4.4.0:
Would remove:
/home/varun/.local/bin/jupyter-trust
/home/varun/.local/lib/python3.6/site-packages/nbformat-4.4.0.dist-info/*
/home/varun/.local/lib/python3.6/site-packages/nbformat/*
Proceed (y/n)? y
Successfully uninstalled nbformat-4.4.0
Uninstalling nbconvert-5.3.1:
Would remove:
/home/varun/.local/bin/jupyter-nbconvert
/home/varun/.local/lib/python3.6/site-packages/nbconvert-5.3.1.dist-info/*
/home/varun/.local/lib/python3.6/site-packages/nbconvert/*
Proceed (y/n)? y
Successfully uninstalled nbconvert-5.3.1
Uninstalling notebook-5.6.0:
Would remove:
/home/varun/.local/bin/jupyter-bundlerextension
/home/varun/.local/bin/jupyter-nbextension
/home/varun/.local/bin/jupyter-notebook
/home/varun/.local/bin/jupyter-serverextension
/home/varun/.local/lib/python3.6/site-packages/notebook-5.6.0.dist-info/*
/home/varun/.local/lib/python3.6/site-packages/notebook/*
Proceed (y/n)? y
Successfully uninstalled notebook-5.6.0