Eu tentei reproduzir o seu cenário e não tenho o jupyter instalado. Então, primeiro:
sudo pip2 install jupyter
Ele fez o download do jupyter, bem como de alguns outros pacotes, mas terminou primeiro com algum erro, então, em re-run, repetidamente com:
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
No entanto, parece que pelo menos o executável do jupyter já foi instalado:
$ 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
Mas quando eu tentei desinstalá-lo:
sudo -H pip2 uninstall jupyter
Skipping jupyter as it is not installed.
Caso você tenha o mesmo ao desinstalar, o problema pode ser que o jupyter não tenha sido instalado corretamente em primeiro lugar.
No entanto, finalmente consegui instalá-lo corretamente instalando os cabeçalhos de desenvolvimento do Python: sudo apt install python-dev
. E sim, sudo pip2 uninstall jupyter
executado com sucesso, mas ainda posso executar /usr/local/bin/jupyter
depois disso.
A desinstalação do jupyter-console
package (encontrado via pip-autoremove -L
) também não funcionou, mesmo com o nome que alguém possa pensar que deveria.
Mas eu tentei fazer isso em um antigo "Norton Commander", para verificar o que está dentro de /usr/local/bin/jupyter
. Felizmente, é apenas um simples código Python, e notei uma referência de pacote interessante na linha 7:
from jupyter_core.command import main
E então foi feito!
$ 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
Portanto, todo o problema é sobre pip
não remover em uninstall
as dependências que ele baixou automaticamente durante install
.
UPDATE: Com relação às mensagens que você encontrou ao desinstalar o jupiter / notebook - não obtive nenhuma delas, mas elas parecem não estar relacionadas ao problema discutido:
The directory '/home//.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.
Eu também recebo isso se eu executar sudo pip <anything>
, não sudo -H pip <anything>
. Parece ser inofensivo.
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.
Eu já tenho pip 10.0.1 - é por isso que eu não vejo isso.
Exceto esses avisos, ambos os pacotes estão sendo desinstalados corretamente, como eu posso ver.
Quanto à necessidade de sudo
, não estou surpreso, pois normalmente pip install *
instala o pacote em todo o sistema e é improvável que você possa gravar em /usr/local/lib/python*
sem raiz. O parâmetro --user
existe no pip para contornar isso, a resposta mais detalhada está aqui: link