#1 Le 18/03/2021, à 23:15
- Nuliel

pip et virtualenv, grosse bêtise
Bonjour,
Je viens de faire une grosse bêtise: j'avais fait un virtualenv afin d'installer un programme qui s'appelle angr, et qui doit être installé dans un virtualenv pour pas mettre le bazar. J'ai donc passé
python3 -m venv angr_env
cd angr_env/
source bin/activate
pip3 install angr
deactivateil y a quelques jours. Et ça a très bien fonctionné. Aujourd'hui j'ai fait deux choses: configurer vscode pour utiliser ce virtualenv et j'ai aussi déplacé mes deux virtualenv pour faire un dossier avec mes virtualenv. Aujourd'hui, angr n'est plus reconnu, j'ai donc réinstallé angr dans le virtualenv en passant par le terminal de vscode. Sauf que ce *** m'a installé angr en dehors de mon virtualenv.
Voici ce que j'ai eu
(angr_env) nuliel@nuliel-desktop:~/python_venv/angr_env$ pip3 install angr
Collecting angr
Downloading angr-9.0.6488-py3-none-manylinux1_x86_64.whl (1.4 MB)
|████████████████████████████████| 1.4 MB 490 kB/s
Collecting cle==9.0.6488
Downloading cle-9.0.6488-py3-none-any.whl (142 kB)
|████████████████████████████████| 142 kB 420 kB/s
Collecting pyvex==9.0.6488
Downloading pyvex-9.0.6488-py3-none-manylinux1_x86_64.whl (2.9 MB)
|████████████████████████████████| 2.9 MB 459 kB/s
Collecting mulpyplexer
Using cached mulpyplexer-0.09.tar.gz (2.8 kB)
Collecting pycparser>=2.18
Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
Collecting dpkt
Using cached dpkt-1.9.5-py3-none-any.whl (177 kB)
Collecting psutil
Using cached psutil-5.8.0-cp39-cp39-manylinux2010_x86_64.whl (293 kB)
Collecting itanium-demangler
Using cached itanium_demangler-1.0.tar.gz (6.9 kB)
Collecting archinfo==9.0.6488
Downloading archinfo-9.0.6488-py3-none-any.whl (56 kB)
|████████████████████████████████| 56 kB 462 kB/s
Collecting capstone>=3.0.5rc2
Using cached capstone-4.0.2-py2.py3-none-manylinux1_x86_64.whl (2.1 MB)
Collecting cffi>=1.14.0
Using cached cffi-1.14.5-cp39-cp39-manylinux1_x86_64.whl (406 kB)
Collecting rpyc
Using cached rpyc-5.0.1-py3-none-any.whl (68 kB)
Collecting sortedcontainers
Using cached sortedcontainers-2.3.0-py2.py3-none-any.whl (29 kB)
Collecting ailment==9.0.6488
Downloading ailment-9.0.6488-py3-none-any.whl (16 kB)
Collecting CppHeaderParser
Using cached CppHeaderParser-2.7.4.tar.gz (54 kB)
Collecting progressbar2
Using cached progressbar2-3.53.1-py2.py3-none-any.whl (25 kB)
Collecting unicorn==1.0.2rc4
Using cached unicorn-1.0.2rc4-py2.py3-none-manylinux1_x86_64.whl (8.1 MB)
Collecting cachetools
Using cached cachetools-4.2.1-py3-none-any.whl (12 kB)
Collecting GitPython
Using cached GitPython-3.1.14-py3-none-any.whl (159 kB)
Collecting protobuf>=3.12.0
Using cached protobuf-3.15.6-cp39-cp39-manylinux1_x86_64.whl (1.0 MB)
Collecting claripy==9.0.6488
Downloading claripy-9.0.6488-py3-none-any.whl (153 kB)
|████████████████████████████████| 153 kB 421 kB/s
Collecting networkx>=2.0
Using cached networkx-2.5-py3-none-any.whl (1.6 MB)
Collecting future
Using cached future-0.18.2-py3-none-any.whl
Collecting pysmt
Using cached PySMT-0.9.0-py2.py3-none-any.whl (317 kB)
Requirement already satisfied: decorator in /usr/lib/python3/dist-packages (from claripy==9.0.6488->angr) (4.4.2)
Collecting z3-solver>=4.8.5.0
Using cached z3_solver-4.8.10.0-py2.py3-none-manylinux1_x86_64.whl (32.6 MB)
Collecting pefile
Using cached pefile-2019.4.18.tar.gz (62 kB)
Collecting pyelftools>=0.25
Using cached pyelftools-0.27-py2.py3-none-any.whl (151 kB)
Collecting bitstring
Using cached bitstring-3.1.7.tar.gz (195 kB)
Requirement already satisfied: six>=1.9 in /usr/lib/python3/dist-packages (from protobuf>=3.12.0->angr) (1.15.0)
Collecting ply
Using cached ply-3.11-py2.py3-none-any.whl (49 kB)
Collecting gitdb<5,>=4.0.1
Using cached gitdb-4.0.5-py3-none-any.whl (63 kB)
Collecting smmap<4,>=3.0.1
Using cached smmap-3.0.5-py2.py3-none-any.whl (25 kB)
Collecting python-utils>=2.3.0
Using cached python_utils-2.5.6-py2.py3-none-any.whl (12 kB)
Collecting plumbum
Using cached plumbum-1.7.0-py2.py3-none-any.whl (116 kB)
Building wheels for collected packages: bitstring, CppHeaderParser, itanium-demangler, mulpyplexer, pefile
Building wheel for bitstring (setup.py) ... done
Created wheel for bitstring: filename=bitstring-3.1.7-py3-none-any.whl size=37946 sha256=125878257653d2f2081e348c144d0d5a0e6da83bd6a5068373e7e30663384e6a
Stored in directory: /home/nuliel/.cache/pip/wheels/3a/e5/bc/3856dd175f987879cc0f260f663d402b7f4499b3175f18b433
Building wheel for CppHeaderParser (setup.py) ... done
Created wheel for CppHeaderParser: filename=CppHeaderParser-2.7.4-py3-none-any.whl size=44974 sha256=ba0f54edf9d0c93a145c5ec29270a735507d0f8a92ec43b3df5a73eff5f3547c
Stored in directory: /home/nuliel/.cache/pip/wheels/fe/2f/40/8e0e342fcc196a3327437347abd26da02275cd823346250101
Building wheel for itanium-demangler (setup.py) ... done
Created wheel for itanium-demangler: filename=itanium_demangler-1.0-py3-none-any.whl size=7289 sha256=878db44bd4767b5d533feb1c6293aca8b6171f311742f77df51d3c7a5ad4e32d
Stored in directory: /home/nuliel/.cache/pip/wheels/56/d2/f2/7103b255a92479ee8df305c005b491a0b6c8a23031c2b2b69b
Building wheel for mulpyplexer (setup.py) ... done
Created wheel for mulpyplexer: filename=mulpyplexer-0.9-py3-none-any.whl size=3790 sha256=b0a848f2500e3fea5211137c2d3c53f281529f5e41cb9f1b5ecb561c49ca6cfa
Stored in directory: /home/nuliel/.cache/pip/wheels/4a/aa/1d/becd7b2279b9efd319ff0fc4f720d2f5d87a35f723f030fcf4
Building wheel for pefile (setup.py) ... done
Created wheel for pefile: filename=pefile-2019.4.18-py3-none-any.whl size=60822 sha256=55a9daea6e6ad283209871236290a00ccd8324b18d527da16089a7c5958e5a7e
Stored in directory: /home/nuliel/.cache/pip/wheels/f4/da/18/d53583cd2746d6d4a38630ac2ed3adf1cf4c87cb893f4c29b3
Successfully built bitstring CppHeaderParser itanium-demangler mulpyplexer pefile
Installing collected packages: pycparser, smmap, future, cffi, bitstring, archinfo, z3-solver, sortedcontainers, pyvex, python-utils, pysmt, pyelftools, ply, plumbum, pefile, gitdb, cachetools, unicorn, rpyc, psutil, protobuf, progressbar2, networkx, mulpyplexer, itanium-demangler, GitPython, dpkt, CppHeaderParser, cle, claripy, capstone, ailment, angr
Successfully installed CppHeaderParser-2.7.4 GitPython-3.1.14 ailment-9.0.6488 angr-9.0.6488 archinfo-9.0.6488 bitstring-3.1.7 cachetools-4.2.1 capstone-4.0.2 cffi-1.14.5 claripy-9.0.6488 cle-9.0.6488 dpkt-1.9.5 future-0.18.2 gitdb-4.0.5 itanium-demangler-1.0 mulpyplexer-0.9 networkx-2.5 pefile-2019.4.18 plumbum-1.7.0 ply-3.11 progressbar2-3.53.1 protobuf-3.15.6 psutil-5.8.0 pycparser-2.20 pyelftools-0.27 pysmt-0.9.0 python-utils-2.5.6 pyvex-9.0.6488 rpyc-5.0.1 smmap-3.0.5 sortedcontainers-2.3.0 unicorn-1.0.2rc4 z3-solver-4.8.10.0
(angr_env) nuliel@nuliel-desktop:~/python_venv/angr_env$ deactivate
nuliel@nuliel-desktop:~/python_venv/angr_env$ pip3 list | grep angr
angr 9.0.6488
nuliel@nuliel-desktop:~/python_venv/angr_env$J'imagine que j'ai gagné une réinstallation? (par chance mon home est séparé)
Dernière modification par Nuliel (Le 18/03/2021, à 23:16)
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#2 Le 18/03/2021, à 23:55
- pseudofab

Re : pip et virtualenv, grosse bêtise
Salut,
Sauf que ce *** m'a installé angr en dehors de mon virtualenv.
Pourtant je lis: (angr_env) nuliel@nuliel-desktop:
# Là pour le plaisir de découvrir ...
# Envie d'apprendre Bash ou Python? Pensez aux MOOC ---> https://forum.ubuntu-fr.org/viewtopic.php?id=2030646
Hors ligne
#3 Le 18/03/2021, à 23:57
- beuguissime
Re : pip et virtualenv, grosse bêtise
Salut Nulliel,
Non, je ne pense pas. Est-ce que tout n'est pas allé dans les sous-dossiers de ~/.local ?
Auquel cas, tu pourrais appliquer un rm à ~/.local/lib/python3.x/ (à adapter plus finement), non ?
Hors ligne
#4 Le 19/03/2021, à 07:55
- Nuliel

Re : pip et virtualenv, grosse bêtise
@pseudofab: malheureusement lorsque je suis en dehors du virtualenv, le résultat est sans appel: angr est installé en dehors de ce virtualenv, la preuve
nuliel@nuliel-desktop:~$ pip3 list | grep angr
angr 9.0.6488
nuliel@nuliel-desktop:~$Je ne sais pas ce qu'il s'est passé mais le prompt avec (angr_env) devant, c'est vraiment piégeux.
En fait le problème c'est que l'installation de angr a installé tout un tas de dépendances qui peuvent rendre mon système instable (car mon système utilise lui aussi python), mais je ne sais pas s'il utilise des paquets python en particulier. Donc je ne sais pas comment faire le ménage en fait.
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#5 Le 19/03/2021, à 08:04
- Nuliel

Re : pip et virtualenv, grosse bêtise
Bon j'ai compris d'où vient le problème, c'est vraiment stupide:
j'ai créé le dossier du virtualenv que j'ai ensuite mis dans un dossier python_venv.
Problème: bin/activate n'est pas au courant et va donc mal modifier le PATH.
Résultat: lorsqu'on appelle pip, ce n'est pas celui du virtualenv qui est appelé mais à l'extérieur. Par contre le prompt est bien modifié.
Sinon le package pip-autoremove va peut être me sauver mon install, je vais essayer, de toute façon j'ai plus rien à perdre.
Dernière modification par Nuliel (Le 19/03/2021, à 08:10)
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#6 Le 19/03/2021, à 08:21
- pseudofab

Re : pip et virtualenv, grosse bêtise
pip show ne semble pas bavard sur les dépendances installées.
Peut être voir avec pipdeptree : https://qastack.fr/programming/9232568/ … d-with-pip
?
# Là pour le plaisir de découvrir ...
# Envie d'apprendre Bash ou Python? Pensez aux MOOC ---> https://forum.ubuntu-fr.org/viewtopic.php?id=2030646
Hors ligne
#7 Le 19/03/2021, à 08:43
- pseudofab

Re : pip et virtualenv, grosse bêtise
Depuis https://libraries.io/pypi/angr , tu peux voir les dépendances utilisées... mais bon ça ne te dit pas si elles sont aussi utilisées par ton système
# Là pour le plaisir de découvrir ...
# Envie d'apprendre Bash ou Python? Pensez aux MOOC ---> https://forum.ubuntu-fr.org/viewtopic.php?id=2030646
Hors ligne
#8 Le 19/03/2021, à 10:18
- Nuliel

Re : pip et virtualenv, grosse bêtise
Depuis https://libraries.io/pypi/angr , tu peux voir les dépendances utilisées... mais bon ça ne te dit pas si elles sont aussi utilisées par ton système
Oui, un vrai autoremove aurait été le bienvenue
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#9 Le 19/03/2021, à 11:10
- beuguissime
Re : pip et virtualenv, grosse bêtise
Salut Nulliel,
Non, je ne pense pas. Est-ce que tout n'est pas allé dans les sous-dossiers de ~/.local ?
Auquel cas, tu pourrais appliquer un rm à ~/.local/lib/python3.x/ (à adapter plus finement), non ?
As-tu regardé dans ~/.local ?
Hors ligne
#10 Le 19/03/2021, à 11:23
- Nuliel

Re : pip et virtualenv, grosse bêtise
Oui, tout est allé dans .local, dans ~/.local/lib/python3.9/ dans .local/bin, ...
Le problème c'est pour adapter: je ne sais pas ce qui est à supprimer, ce qui est à garder (car utilisé par mon système), ce qui est à downgrade (car l'installation de angr a pu aussi écraser des librairies utilisées par mon système pour en mettre des plus récentes, ce qui peut poser problème)
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#11 Le 19/03/2021, à 11:34
- beuguissime
Re : pip et virtualenv, grosse bêtise
Utilisais-tu déjà .local pour d'autres modules python ? Si tu as une liste, tu auras peut-être aussi vite fait de supprimer, entre autres, .local/lib/python3.9 et relancer les pip3 install pour les modules dont tu as besoin.
Hors ligne
#12 Le 19/03/2021, à 11:51
- Nuliel

Re : pip et virtualenv, grosse bêtise
Oui, généralement j'utilise .local pour tous les modules python sauf pour deux cas particuliers qui peuvent vraiment mettre le bazar: keras (qui demande tensorflow et une quantité incroyable de modules) ainsi que angr. Pour ces deux là j'avais spécialement fait des virtualenv, sauf que je ne savais pas que le dossier d'un virtualenv ne doit pas bouger, sous peine d'installer en dehors du virtualenv en pensant qu'on est dedans.
Non, je n'ai pas la liste, et je ne sais pas non plus ce que vscode a installé automatiquement (par exemple pylint a été installé par vscode), et il y a sûrement d'autres modules qui ont été installé et dont je n'ai pas connaissance de l'utilité, ni du logiciel qui l'a installé.
Clairement pip manque d'une instruction autoremove et de logs activés automatiquement.
Dernière modification par Nuliel (Le 19/03/2021, à 11:52)
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#13 Le 19/03/2021, à 14:36
- Nuliel

Re : pip et virtualenv, grosse bêtise
Finalement j'ai réinstallé, je pense que c'est ce qui est le plus propre, j'ai peur de me retrouver avec un système instable à cause de dépendances supprimées qui n'auraient pas dû l'être ou des dépendances trop récentes, .... . J'en profite pour faire un script d'installation histoire de l'avoir sous la main en cas de besoin. Mais un vrai autoremove sur pip ce serait quand même bien.
En tout cas merci à vous deux.
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#14 Le 19/03/2021, à 14:54
- beuguissime
Re : pip et virtualenv, grosse bêtise
Mais qu'as-tu réinstallé ? Tout ton SE ? Ou bien as-tu vidé ton .local puis re-rempli à coup de pip3 install ?
Hors ligne
#15 Le 19/03/2021, à 15:11
- Nuliel

Re : pip et virtualenv, grosse bêtise
J'ai réinstallé le SE vu que je ne sais pas exactement quoi supprimer/quoi réinstaller
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#16 Le 19/03/2021, à 15:21
- beuguissime
Re : pip et virtualenv, grosse bêtise
En fait, je ne comprends pas bien ton inquiétude du départ. Il me manque peut-être des infos. Tu parles d'avoir peur d'avoir mis le bazar dans python. Ok, mais le pire qui puisse arrivé reste au niveau de l'utilisateur (toi) dans ~/.local. Sauf à avoir lancé pip3 avec les droits admin, tu n'as pas touché au SE.
Moi, j'aurais listé ce qui se trouve dans ~/.local/lib/python3.9/dist-packages/, j'aurais vidé les bons dossiers du .local. Puis, partant de la liste établie, j'aurais reconstruit mon systèmes de paquets locaux. Là, en ayant réinstallé le SE, soit tu as gardé ton home et le .local qui va avec, et dans ce cas, tu as toujours un soupçon de corruption ; soit, tu en as profité pour effacer le .local et dans ce cas, il faudra bien que tu réinstalles tous tes modules nécessaires à tes activités. J'ai raté quelque chose ?
Hors ligne
#17 Le 19/03/2021, à 15:29
- Nuliel

Re : pip et virtualenv, grosse bêtise
Oui, j'ai foutu le bazar dans python pour mon utilisateur uniquement. Je n'ai pas lancé de sudo pip (ne jamais faire ça!)
Je pensais que le système installait aussi des packages python dans .local dès l'installation (là je constate qu'il n'y a rien dans .local à part share, mais j'aurais parié qu'il y avait des packages python dès l'install), d'où le problème de tri de ce que j'ai installé et ce que je n'ai pas installé. Aussi certaines extensions vscode par exemple sont installées via pip de manière semi automatique (je veux installer l'extension bidule, vscode installe un package python), donc je ne sais pas exactement qui fait quoi dans ces différents packages.
Après je ne sais pas si ça aurait pu casser d'autres logiciels de supprimer les packages python de l'utilisateur et réinstaller seulement ce que j'utilise vraiment
Dernière modification par Nuliel (Le 19/03/2021, à 15:33)
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne