Bug #55974
ModuleNotFoundError: No module named 'lasso'
0%
Description
$ ansible-playbook -K -i inventory.yml install.ym ... hobo-manage migrate_schemas File "/home/nroche/src/django-mellon/mellon/__init__.py", line 2, in <module> import lasso ModuleNotFoundError: No module named 'lasso' $ ls /home/nroche/envs/publik-env-py3/lib/python3.9/site-packages/ -l | grep lasso lrwxrwxrwx 1 nroche nroche 41 4 août 11:46 _lasso.* -> /usr/lib/python3.9/site-packages/_lasso.* lrwxrwxrwx 1 nroche nroche 41 4 août 11:46 lasso.py -> /usr/lib/python3.9/site-packages/lasso.py
Fichiers
Révisions associées
Historique
Mis à jour par Nicolas Roche il y a plus de 2 ans
J'ai l'impression que le script getlasso.j2 ne va pas chercher la librairie au bon endroit (site-packages au lieu de dist-packages) :
$ dpkg -S /usr/lib/python3/dist-packages/_lasso.cpython-39-x86_64-linux-gnu.so
python3-lasso: /usr/lib/python3/dist-packages/_lasso.cpython-39-x86_64-linux-gnu.so
https://wiki.debian.org/Python
Third party Python software installed from Debian packages goes into dist-packages, not site-packages.
c'est à dire que cette ligne là ne fait pas le nécessaire :
SRCDIR=`{{system_python}} -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())'`
comme je pense le montrer ici :
$ . ~/envs/publik-env-py3/bin/activate $ /usr/bin/python3 -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())' /usr/lib/python3.9/site-packages
Mis à jour par Thomas Noël il y a plus de 2 ans
Oui, le getlasso.j2 n'est pas bon ; prendre plutôt exemple sur le getlasso3 fourni par django-mellon.
Mis à jour par Thomas Noël il y a plus de 2 ans
- Fichier 0001-debianize-getlasso3.sh-55974.patch 0001-debianize-getlasso3.sh-55974.patch ajouté
- Tracker changé de Support à Bug
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Nicolas Roche il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Emmanuel Cazenave il y a plus de 2 ans
- Statut changé de Solution validée à En cours
Nicolas Roche a écrit :
comme je pense le montrer ici :
[...]
Tu ne fais pas ce que fait ansible, qui n'active pas le virtualenv avant de taper la commande.
Ansible fait juste la chose suivant qui marche très bien, ton problème est ailleurs :
cazino@cazino-laptop:~$ /usr/bin/python3 -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())' /usr/lib/python3/dist-packages
Mis à jour par Emmanuel Cazenave il y a plus de 2 ans
Sûrement que tu lances le playbook ansible avec ton virtualenv activé, il ne faut pas faire ça.
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
Comment on reproduit le bug ? Si je fais ansible-playbook -K -i inventory.yml install.ym
puis ~/envs/publik-env-py3/bin/hobo-manage migrate_schemas
ça fonctionne très bien.
Mis à jour par Thomas Noël il y a plus de 2 ans
- Statut changé de En cours à Résolu (à déployer)
J'ai oublié de dire que
commit b79f450d6fcea6c91b041534d4938eb1d8d57162 Author: Thomas NOEL <tnoel@entrouvert.com> Date: Wed Aug 4 15:19:19 2021 +0200 debianize getlasso3.sh (#55974) diff --git a/roles/base/templates/getlasso.j2 b/roles/base/templates/getlasso.j2 index c2246b2..f8a6218 100644 --- a/roles/base/templates/getlasso.j2 +++ b/roles/base/templates/getlasso.j2 @@ -3,15 +3,15 @@ # Get venv site-packages path DSTDIR=`{{virtualenv_python}} -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())'` -SRCDIR=`{{system_python}} -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())'` - # Clean up rm -f $DSTDIR/lasso.* rm -f $DSTDIR/_lasso.* # Link -ln -sv $SRCDIR/lasso.py $DSTDIR -ln -sv $SRCDIR/_lasso.* $DSTDIR +ln -sv /usr/lib/python3/dist-packages/lasso.py $DSTDIR/ +for SOFILE in /usr/lib/python3/dist-packages/_lasso.cpython-*.so +do + ln -sv $SOFILE $DSTDIR/ +done exit 0
Mis à jour par Emmanuel Cazenave il y a plus de 2 ans
(qui servait sûrement rien mais je le laisse puisque ça continue à marcher).
Mis à jour par Thomas Noël il y a plus de 2 ans
Emmanuel Cazenave a écrit :
(qui servait sûrement rien mais je le laisse puisque ça continue à marcher).
C'était bien confusé par le getlasso.sh qui se trouve installé dans ../envs/publik-env-py3/bin/getlasso.sh mais qui ne doit pas être lancé depuis le venv (sinon il casse les liens). Et donc là, le getlasso.sh de maintenant il marche aussi bien en dehors qu'en dedans le venv et la vie est plus belle.
Mis à jour par Emmanuel Cazenave il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
debianize getlasso3.sh (#55974)