Script Python Custom (AGI) - Changement Python2 -> Python3

Hello,

j’ai un script python qui ne fonctionne plus sur Wazo 23.02 mais qui fonctionnait avant les changements de version python

Historiquement mon script python faisait appel à

from xivo.agi import AGI

Du coup mon script me renvoi une erreur de type :

Traceback (most recent call last):
  File "test.py", line 6, in <module>
    from xivo.agi import AGI
ImportError: No module named xivo.agi

Je constate que la librairie (si on peut l’appeler comme ça) n’est plus là dans /usr/lib/python2.7/dist-packages/xivo

Si je regarde dans les dossiers python3* equivalent dans le même repertoire je ne retrouve pas les mêmes fichiers.

Est-ce que quelqu’un saurait m’aider à trouver comment je peux de nouveau importer ce module suite aux derniers changements ?

On a rien changé de ce côté, tu dois juste utiliser python3 ou lieu de python2. Tu dois faire ce changement car le switch à debian11 retire python2.

Merci pour ta réponse quintana.

Je vais regarder cette piste et en effet si j’execute en python 3.7 mon module s’importe bien en execution manuelle du script.

Toutefois mon script est appelé dans un dialplan via l’instruction AGI() comme ceci :

same = n,Agi(/var/lib/asterisk/agi-bin/test.py,args)

Tu penses que juste modifier l’entête du script python permettra d’executer le script avec la bonne version de python ou faut-il le faire autrement via asterisk ?

#!/usr/bin/env python3.7

Merci pour votre aide :slight_smile:

Je te conseille de mettre

#!/usr/bin/env python3

Car quand on va passer à python3.9 par exemple tu risques de ne plus avoir 3.7 sur le systeme.
Sinon oui tu peux faire ainsi.

En passant, attention un AGI c’est très gourmand en ressource. Si tu peux plutôt faire du FastAGI c’est mieux.

Sylvain

1 Like

Merci beaucoup pour ces conseils.