Meu sistema operacional debian passou por algumas atualizações e agora está no 11 (Bullseye). Inicialmente comecei com python2
e agora não quero mais - só quero python3
. Eu instalei virtualenv
há muito tempo quando ainda estava trabalhando com python2
.
Eu fiz um completo dist-upgrade
:
$ sudo apt-get update
Hit:1 http://deb.debian.org/debian bullseye InRelease
Get:2 https://deb.nodesource.com/node_14.x bullseye InRelease [4,586 B]
Get:3 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Hit:4 http://deb.debian.org/debian bullseye-updates InRelease
Fetched 53.0 kB in 1s (49.9 kB/s)
Reading package lists... Done
$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
libts-dev
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
E quando verifico se virtualenv
está instalado diz que sim:
$ which virtualenv
/usr/local/bin/virtualenv
Tento desinstalá-lo, mas pip
me diz que não está instalado:
$ pip uninstall virtualenv
WARNING: Skipping virtualenv as it is not installed
$ sudo pip uninstall virtualenv
WARNING: Skipping virtualenv as it is not installed.
$ pip3 uninstall virtualenv
WARNING: Skipping virtualenv as it is not installed
$ sudo pip3 uninstall virtualenv
WARNING: Skipping virtualenv as it is not installed.
Também tentei desinstalar com o gerenciador de pacotes caso tenha sido instalado dessa forma
$ sudo apt-get remove virtualenv --purge
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package 'virtualenv' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Mas depois de tudo isso ainda posso ver que está instalado:
$ which virtualenv
/usr/local/bin/virtualenv
O motivo pelo qual desejo removê-lo é que ele apresenta um erro quando tento executá-lo. E estou pensando que removê-lo totalmente e instalar novamente resolverá isso:
$ virtualenv .
Traceback (most recent call last):
File "/usr/local/bin/virtualenv", line 7, in <module>
from virtualenv import main
ModuleNotFoundError: No module named 'virtualenv'
Devo apenas excluir /usr/local/bin/virtualenv
? Isso parece uma má ideia. Como posso remover virtualenv
usando um gerenciador de pacotes?
Atualização 1 - tente instalar virtualenv
usandopip3
A instalação foi bem-sucedida, mas virtualenv
ainda não funciona sem erros:
$ pip3 install virtualenv
Defaulting to user installation because normal site-packages is not writeable
Collecting virtualenv
Using cached virtualenv-20.25.1-py3-none-any.whl.metadata (4.4 kB)
Requirement already satisfied: distlib<1,>=0.3.7 in ./.local/lib/python3.9/site-packages (from virtualenv) (0.3.8)
Requirement already satisfied: filelock<4,>=3.12.2 in ./.local/lib/python3.9/site-packages (from virtualenv) (3.13.3)
Requirement already satisfied: platformdirs<5,>=3.9.1 in ./.local/lib/python3.9/site-packages (from virtualenv) (4.2.0)
Using cached virtualenv-20.25.1-py3-none-any.whl (3.8 MB)
Installing collected packages: virtualenv
WARNING: The script virtualenv is installed in '/home/me/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed virtualenv-20.25.1
$ which virtualenv
/usr/local/bin/virtualenv
$ virtualenv --version
Traceback (most recent call last):
File "/usr/local/bin/virtualenv", line 7, in <module>
from virtualenv import main
ImportError: cannot import name 'main' from 'virtualenv' (/home/me/.local/lib/python3.9/site-packages/virtualenv/__init__.py)
$ virtualenv .
Traceback (most recent call last):
File "/usr/local/bin/virtualenv", line 7, in <module>
from virtualenv import main
ImportError: cannot import name 'main' from 'virtualenv' (/home/me/.local/lib/python3.9/site-packages/virtualenv/__init__.py)
E agora virtualenv
existe em 2 locais no sistema de arquivos:
$ which virtualenv
/usr/local/bin/virtualenv
$ sudo find /usr/ -iname "virtualenv" | grep bin
/usr/local/bin/virtualenv
$ sudo find /home/me/.local/ -iname "virtualenv" | grep bin
/home/me/.local/bin/virtualenv
$ ls -l /home/me/.local/bin/virtualenv
-rwxr-xr-x 1 me me 238 Apr 7 13:06 /home/me/.local/bin/virtualenv
O gerenciador de pacotes do sistema não gerencia arquivos
/usr/local
.Dado que
pip
não é possível desinstalarvirtualenv
para você, sua melhor opção agora éPode haver outros restos em outros lugares
/usr/local
, mas eles não causarão nenhum dano. Você pode procurá-los mais tarde.Observe que no Debian 11
virtualenv
está disponível nopython3-virtualenv
pacote.