Closed richardpub4136 closed 5 years ago
C'est que tu n'a pas charger l’environnement virtuel python Dans le dossier de l'app tu devrais avoir un dossier venv, si ce n'est pas le cas ou dans le doute exécute setup.sh
./setup.sh
Puis
. venv/bin/activate
Et la tu devrais avoir les bonnes librairies J'ai du oublié de le précisé dans le README
une fois l'environnement virtuel python "activé" tu n'utilise plus le python du système mais celui dans venv, sa permet de ne pas polluer celui du système et les APP de Snips fonctionne comme sa c'est le setup.sh qui ce charge de créé/préparer l’environnement adéquate
Merci pour la réponse je m’y remet à mon retour de vacances
Envoyé de mon iPhone
Le 17 janv. 2019 à 16:15, Ultchad notifications@github.com a écrit :
C'est que tu n'a pas charger l’environnement virtuel python Dans le dossier de l'app tu devrais avoir un dossier venv, si ce n'est pas le cas ou dans le doute exécute setup.sh
./setup.sh Puis
. venv/bin/activate Et la tu devrais avoir les bonnes librairies J'ai du oublié de le précisé dans le README
une fois l'environnement virtuel python "activé" tu n'utilise plus le python du système mais celui dans venv, sa permet de ne pas polluer celui du système et les APP de Snips fonctionne comme sa c'est le setup.sh qui ce charge de créé/préparer l’environnement adéquate
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
Je confirme : même problème. Ton correctif est OK @Ultchad
Par contre j'ai dû faire un chmod 777 sur le répertoire du skill pour que le token puisse être écrit. C'est le user pi qui veut écrire et il n'a pas les droits par défaut. Ca me fait penser, dans la doc, le répertoire par défaut n'est plus le bon, maintenant c'est : /var/lib/snips/skills/snips-skill-spotifywebapi
Merci pour le chemin vers le dossier j'avais oublié snips, c'est corrigé J'ajouterai a la Doc l'activation de l'environnement virtuel python
. venv/bin/activate
Pour le problème de droits je vais essayer de corrigé ça dans le setup.sh et voir comment les autres gère ce problème Merci pour l'aide
Je confirme le problème, le venv est créé mais il y a maintenant un warning quand on créé un venv Python 2, et comme le code de sortie n'est plus 0, à cause du flag bash -e
, le script setup.sh
quitte avant d'installer les dépendances.
La seconde fois, comme le venv est déjà installé, setup.sh
fait ce qu'il faut.
Si tu n'as pas déjà commencé, je serai ravi de migrer ton app à Python 3.
Edit: tu peux aussi demander aux gens de lancer ./venv/bin/python token-generator.py
mais il reste le problème de droits. Perso je fais tout avec sudo et je fais un chown ensuite mais je ne conseillerais pas de travailler comme ça.
J'ai commencé une migration vers python3, en dev mais je ne suis pas contre de l'aide car mon travail n'est pas très "propre" de ce coté Par contre je pense qu'il serais mieux que l'on ouvre une issue "Compatibilité python3" pour tout référencé (j'essaie de faire les chose bien, j’apprends sur le tas)
Je regarde ça pour le problème du bash, dans le template officiel le Shebang est mis comme ça, et sa pose problème depuis que python2 est déprécié via la commande pip
Et c'est une bonne idée d'ajouter a la doc pour la génération du token:
./venv/bin/python token-generator.py
Je garde ce ticket pour le problème initiale: token-generator et la mise a jours de la doc
Désolé pour cette réponse un peux brouillon et merci pour vos retour
Je disais une bêtise, c'est pip install
qui génère cette erreur. Sinon ça ne reviendrait pas à chaque redéploiement de l'assistant.
On peut s'en sortir avec un pip install -r requirements.txt || true
mais avec le risque de laisser setup.sh
continuer s'il y a une erreur légitime.
Bon vu que dans notre cas, on ne fait qu'initialiser le fichier de config, ça me paraît sûr.
Je n'ai pas trouvé le moyen de le désactiver dans pip lui-même.
Qui qui c'est qui dit des bêtises parce qu'il parle sans vérifier ? C'est moiiii...
Ce n'est pas du tout un problème de code de sortie mais de message écrit sur stderr
qui fait dire à sam ou en tout cas le programme qui lance ./setup.sh
que quelque chose s'est mal passé.
Exemple
$ ./venv/bin/pip2 install -r requirements.txt 2>/dev/null
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
[...]
Successfully installed spotipy
Hop ! plus d'avertissement alors que c'était encore du Python 2.
Donc les dépendances sont bien installées au déploiement de l'application. Il faut juste que les gens lancent la commande dans le contexte du venv.
Mais il reste cet épineux problème de droits. On est en user pi
, et même si on change les permissions du répertoire en 777, le fichier créé ne sera pas réinscriptible par _snips-skills
pour qu'il puisse renouveler le refresh token. Il faudrait aussi changer les permissions du fichier, ça devient compliqué... On est sur un dev kit pour développeurs, certes, mais l'idée est aussi qu'une application Snips soit simple à installer et utiliser.
Autant on peut obtenir client_id
, etc. au déploiement de l'assistant, autant il y a cette histoire de redirect URL qui complique tout. J'imagine que tu avais regardé d'autres méthodes d'authentification mais elles n'étaient pas possibles ?
J'ai vue la même chose pour pipi et sa sortie hier, j'oublie de posté mes recherches, merci à toi d'être plus réactif. Pour l'histoire de droit, vue que j'ai bidouiller pas mal et je pense modifier les droit sur mon Snips de prod, j'ai commencé une vm de test avec les réglages par défaut. Pour ce qui est d'une autre méthode d'authentification je n'en ai pas trouvé, du moins en Web api, quand tu a un client spotify c'est plus simple, mais c'est plus de travail et de configuration du rasperry
Effectivement, j'ai regardé spotipy et quelques alternatives, on en revient toujours à l'auth Web.
Puisque le besoin est uniquement de dire aux gens de copier-coller l'URL de retour, pourquoi ne pas monter une page Github (https://help.github.com/en/articles/configuring-a-publishing-source-for-github-pages), préconfigurée dans l'app, qui dirait simplement de copier l'URL de cette page quand l'app la demande. Il suffirait d'une page statique qui pourrait afficher window.location
de manière un peu chiadée.
hello,
j'ai toujours ce problème quand je veux generer un token et je n'arrive pas a aller plus loin :
warning:couldn't write token cache to .cache-1137191517 Token gen and test OK: .cache-1137191517
Quelles sont les permissions du dossier /var/lib/snips/skills/snips-skill-spotifywebapi
avec ls -l
et quelle commande tu lances avec quel utilisateur ?
J'ai ca :
pi@snips-master:/var/lib/snips/skills/snips-skill-spotifywebapi $ ls -l
total 56
-rwxr-xr-x 1 _snips-skills _snips-skills 20404 Mar 27 01:47 action-spotifywebapi.py
-rw-r--r-- 1 _snips-skills _snips-skills 155 Mar 27 16:00 config.ini
-rw-r--r-- 1 _snips-skills _snips-skills 69 Mar 27 01:47 config.ini.default
-rw-r--r-- 1 _snips-skills _snips-skills 2604 Mar 27 01:47 README.md
-rw-r--r-- 1 _snips-skills _snips-skills 84 Mar 27 01:47 requirements.txt
-rwxr-xr-x 1 _snips-skills _snips-skills 391 Mar 27 01:47 setup.sh
-rwxr-xr-x 1 _snips-skills _snips-skills 5130 Mar 27 01:47 token-generator.py
drwxr-xr-x 2 _snips-skills _snips-skills 4096 Mar 27 01:54 translations
drwxr-xr-x 7 _snips-skills _snips-skills 4096 Mar 27 01:49 venv
mais j'ai aussi ce genre d'erreur a l'installation :
Command "git fetch -q --tags" failed with error code 255 in /var/lib/snips/skills/snips-skill-spotifywebapi/venv/src/spotipy
et ca quand j'execute le .py
(venv) pi@snips-master:/var/lib/snips/skills/snips-skill-spotifywebapi $ python action-spotifywebapi.py
Get the cached token: OK
^CTraceback (most recent call last):
File "action-spotifywebapi.py", line 600, in <module>
.subscribe_intent('Tealque:modeDisable', modeDisable)\
File "/var/lib/snips/skills/snips-skill-spotifywebapi/venv/local/lib/python2.7/site-packages/hermes_python/hermes.py", line 282, in loop_forever
sleep(.1)
KeyboardInterrupt
peux tu faire un ls -la
dans le dossier (l'option 'a' permettra de voir les fichier caché qui commence par '.' comme le fichier de cache du token)
peux tu donner la commande qui ta permis d'installer ( git clone ...
ou sam install action
)
et a tu fait . venv/bin/activate
avant de lancé l'action ?
Aussi la version en python3 est en test si tu veux #13
pour changer sur la branch beta , dans le dossier git checkout beta
voila
pi@snips-master:/var/lib/snips/skills/snips-skill-spotifywebapi $ ls -la
total 80
drwxr-xr-x 5 _snips-skills _snips-skills 4096 Mar 27 16:14 .
drwxrwxr-x 9 _snips-skills snips-skills-admin 4096 Mar 27 01:48 ..
-rwxr-xr-x 1 _snips-skills _snips-skills 20404 Mar 27 01:47 action-spotifywebapi.py
-rw-r--r-- 1 root root 690 Mar 27 16:14 .cache-1137191517
-rw-r--r-- 1 _snips-skills _snips-skills 155 Mar 27 16:00 config.ini
-rw-r--r-- 1 _snips-skills _snips-skills 69 Mar 27 01:47 config.ini.default
drwxr-xr-x 8 _snips-skills _snips-skills 4096 Mar 27 15:48 .git
-rw-r--r-- 1 _snips-skills _snips-skills 389 Mar 27 01:47 .gitattributes
-rw-r--r-- 1 _snips-skills _snips-skills 561 Mar 27 01:47 .gitignore
-rw-r--r-- 1 _snips-skills _snips-skills 2604 Mar 27 01:47 README.md
-rw-r--r-- 1 _snips-skills _snips-skills 84 Mar 27 01:47 requirements.txt
-rwxr-xr-x 1 _snips-skills _snips-skills 391 Mar 27 01:47 setup.sh
-rwxr-xr-x 1 _snips-skills _snips-skills 5130 Mar 27 01:47 token-generator.py
drwxr-xr-x 2 _snips-skills _snips-skills 4096 Mar 27 01:54 translations
drwxr-xr-x 7 _snips-skills _snips-skills 4096 Mar 27 01:49 venv
C'est un insta Sam
je viens de passer en beta et toujours cette ligne sur sam watch
[20:13:45] [Dialogue] session with id '4589d216-81c2-407a-b513-0d2346760da1' was ended on site default. The session was ended because one of the component didn't respond in a timely manner
et ca sur mon rpi
(venv) pi@snips-master:/var/lib/snips/skills/snips-skill-spotifywebapi $ sudo python action-spotifywebapi.py
Traceback (most recent call last):
File "action-spotifywebapi.py", line 4, in <module>
import configparser
ImportError: No module named configparser
Note qu'il ne suffit pas de changer de branche, la branche beta est incompatible avec le code installé par sam. Tu peux trouver les instructions sur le ticket #13.
Désolé j'avais oublié que snips-skill-server
n'allais pas ré exécuté ./setup.sh
en branch beta il faut ré exécuté bash ./setup.sh
qui va supprimé le virutalenv python2 et install celui de python3
Je clos l'incident les différents point aillant reporté sur des issue différente et/ou résolut
Avec token-generator.py j'ai cette erreur:
Traceback (most recent call last): File "token-generator.py", line 4, in
import spotipy
ImportError: No module named spotipy