Réussir à installer "gcalcli" sur Raspberry

Posez vos questions concernant le Raspberry (conseil avant achat, choix de connectique, demandes de câblages...) un espace spécifiques pour les questions relatives aux scripts shell,bask,block etc ... est ouvert dans un autre forum.
Pyrrhus
Messages : 130
Enregistré le : 11 juin 2015, 14:57

Réussir à installer "gcalcli" sur Raspberry

Message par Pyrrhus »

Bonjour !
pour une fois je ne pose pas de question mais j'apporte une solution !
Pour ceux qui ne connaissent pas, gcalcli est un programme python permettant de récupérer son agenda google sur linux. Pourquoi faire ?
- gérer des interrupteurs domoticz comme ici:http://easydomoticz.com/agenda-google-e ... -partie-1/
- ce que moi j'ai fait: faire parler son raspberry pour qu'il vous rappelle l'agenda de demain par exemple
- tout ce que votre imagination peut concevoir :lol:

Le problème est que les tutos d'installation que l'on trouve sur le net ne marchent plus, à cause d'un conflit de version avec "google_api_python_client-1.5.0" et "oauth2client-1.4.2"...
La version actuelle de gcalcli==3.3.2, elle, a besoin "google-api-python-client==1.4.2" et "oauth2client==1.4.12"... merveilleux de subtilité n'est-ce pas !

Voilà la procédure que j'ai trouvé, à force de persévérance, dans l'ordre.
1) On installe les pré-requis

Code : Tout sélectionner

sudo apt-get install python-gflags python-dateutil python-httplib2
sudo apt-get install python-pip
2) On installe les bonnes versions suivantes:

Code : Tout sélectionner

sudo pip install google-api-python-client==1.4.2
sudo pip install oauth2client==1.4.12
3) On installe gcalcli

Code : Tout sélectionner

sudo git clone https://github.com/insanum/gcalcli.git
cd gcalcli
sudo python setup.py install
puis

Code : Tout sélectionner

gcalcli agenda --noauth_local_webserver
On obtient une longue url à copier/coller dans un navigateur pour autoriser l'acces de gcalcli à Google agenda (je vous laisse poursuivre avec le tuto cité plus haut)

ça a marché pour moi donc je partage l'infos ici. Si vous etes intéressé dépechez vous, on ne sait pas pour combien de temps cette version de gcalcli va marcher avec google agenda... ça bouge vite la bas...

Dernière chose: si vous avez déjà installé gcalcli et que ça n'avait pas marché, effacer les traces de gcalcli (repertoire, fichiers de conf...). Profitez-en pour faire un petit nettoyage avant de vous lancer dans l'installation:

Code : Tout sélectionner

sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove

rimram31
Messages : 659
Enregistré le : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: Réussir à installer "gcalcli" sur Raspberry

Message par rimram31 »

Un petit complément, gcalcli utilise un fichier de configuration qui contient la clef d'authentification .gcalcli_oauth créé au premier appel dans le répertoire du user. A savoir si on veut utiliser gcalcli avec un autre user pi ou root pour un appel sous domoticz par exemple. On peut simplement copier le fichier créé par un user sur l'autre (si on utilise le même calendrier évidemment :D )
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20

patrice
Messages : 1670
Enregistré le : 22 sept. 2014, 21:51

Re: Réussir à installer "gcalcli" sur Raspberry

Message par patrice »

Bonjour
Pyrrhus, merci des infos j'ai remis à jour le blog avec tes remarques.
Maison en construction : en attente d'un nouveau terrain de jeu.

Pyrrhus
Messages : 130
Enregistré le : 11 juin 2015, 14:57

Re: Réussir à installer "gcalcli" sur Raspberry

Message par Pyrrhus »

> patrice: Avec plaisir ! Mais il faut que tu enlève une ligne !!!
Il ne faut SURTOUT PAS faire

Code : Tout sélectionner

sudo pip install --upgrade google-api-python-client
Sinon ça va justement installer les mauvaises versions
;) ;) ;)
> rimram31: justement tu vas pouvoir m'aider !
J'ai créé un script qui lit mon agenda avec sortie vocale. Lorsque je le lance dan mon terminal, ça marche.
Lorsque je le lance avec yana server, ça ne marche pas, même en l'executant avec

Code : Tout sélectionner

su -u monuser /mon/script.sh
Le début du script marche, mais des que l'on arrive aux lignes concernant gcalcli, c'est comme si il ne retrouvait pas les infos...
Le user de Yana server est www-data (apache2). J'ai déjà ajouté www-data dans sudoers pour que yana puisse lancer et fermé motion

Code : Tout sélectionner

www-data ALL=(ALL) NOPASSWD /etc/init.d motion
ça marche... pareil pour kodi...
j'ai donc fait

Code : Tout sélectionner

www-data ALL=(ALL) NOPASSWD /usr/local/bin/gcalcli
... et ça marche pas...
Je pense donc effectivement après t'avoir lu qu'il faut que je copie le fichier ".gcalcli_oauth"... Mais OU ??? pour que yana (c'est- a dire le user www-data) puisse l'utiliser ??
Sinon , je peux lancer mon script avec un interrupteur domoticz, puis actionner cet interrupteur avec yana... c'est moins direct...dans ce cas, on doit copier le fichier ".gcalcli_oauth" dans /root, et mettre "sudo" devant chaque ligne de script appelant gcalcli (c'est ce que j'ai remarqué chez moi)

Merci d'avance si tu sais ou copier ".gcalcli_oauth" pour yana... :oops:

rimram31
Messages : 659
Enregistré le : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: Réussir à installer "gcalcli" sur Raspberry

Message par rimram31 »

Par défaut gcalcli va chercher son fichier .gcalcli_oauth dans le HOME du user, c'est /home/<user> comme /home/pi par exemple sauf pour root (-> /root). Après, www-data le souci c'est que c'est un user particulier, je ne sais pas si il a un home lui :D (-> more /etc/passwd ?) ...

Via sudoers/su, quel effet sur l'environnement et donc HOME ??? Heu ... là tu me fais entrer dans les affres des changements d'utilisateur Unix ... je sais pas ... d'autant plus que je vois que gcalccli utilise le ~ :twisted:

Tu peux peut-être faire un export HOME="/home/pi" dans ton script en début de script

Code : Tout sélectionner

export HOME=/home/pi
Je vois aussi qu'on peut indiquer en option de la ligne de commande --configFolder (-> ajouter en option a gcalcli --configFolder /home/pi)
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20

Pyrrhus
Messages : 130
Enregistré le : 11 juin 2015, 14:57

Re: Réussir à installer "gcalcli" sur Raspberry

Message par Pyrrhus »

Effectivement rajoutter gcalcli dans les sudoers ne sert à rien, donc je l'ai enlevé... Malgré tes conseils je n'ai pas réussi à ce que yana se serve de mon agenda, donc je passe par mon interrupteur domoticz puis le plugin domoticz pour yana. L'important est que ça marche !

waow29
Messages : 16
Enregistré le : 09 oct. 2016, 18:53

Re: Réussir à installer "gcalcli" sur Raspberry

Message par waow29 »

Bonjour,
Je ressors le sujet du placard. Pour ma part ce n'est pas un succès, impossible de réussir à installer gcalcli.
J'ai suivi la procédure sans avoir d'erreur jusqu'à ce que mes problèmes commencent quand je lance les commandes suivantes:

Code : Tout sélectionner

sudo python setup.py install

Code : Tout sélectionner

sudo gcalcli agenda --noauth_local_webserver
cela me donne:

Code : Tout sélectionner

pi@raspberrypi:~/gcalcli $ sudo python setup.py install
running install
running bdist_egg
running egg_info
creating gcalcli.egg-info
writing requirements to gcalcli.egg-info/requires.txt
writing gcalcli.egg-info/PKG-INFO
writing top-level names to gcalcli.egg-info/top_level.txt
writing dependency_links to gcalcli.egg-info/dependency_links.txt
writing manifest file 'gcalcli.egg-info/SOURCES.txt'
reading manifest file 'gcalcli.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'gcalcli.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-armv7l/egg
running install_lib
warning: install_lib: 'build/lib.linux-armv7l-2.7' does not exist -- no Python modules to install

creating build
creating build/bdist.linux-armv7l
creating build/bdist.linux-armv7l/egg
creating build/bdist.linux-armv7l/egg/EGG-INFO
installing scripts to build/bdist.linux-armv7l/egg/EGG-INFO/scripts
running install_scripts
running build_scripts
creating build/scripts-2.7
copying and adjusting gcalcli -> build/scripts-2.7
changing mode of build/scripts-2.7/gcalcli from 644 to 755
creating build/bdist.linux-armv7l/egg/EGG-INFO/scripts
copying build/scripts-2.7/gcalcli -> build/bdist.linux-armv7l/egg/EGG-INFO/scripts
changing mode of build/bdist.linux-armv7l/egg/EGG-INFO/scripts/gcalcli to 755
copying gcalcli.egg-info/PKG-INFO -> build/bdist.linux-armv7l/egg/EGG-INFO
copying gcalcli.egg-info/SOURCES.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
copying gcalcli.egg-info/dependency_links.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
copying gcalcli.egg-info/requires.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
copying gcalcli.egg-info/top_level.txt -> build/bdist.linux-armv7l/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating dist
creating 'dist/gcalcli-3.4.0-py2.7.egg' and adding 'build/bdist.linux-armv7l/egg' to it
removing 'build/bdist.linux-armv7l/egg' (and everything under it)
Processing gcalcli-3.4.0-py2.7.egg
Removing /usr/local/lib/python2.7/dist-packages/gcalcli-3.4.0-py2.7.egg
Copying gcalcli-3.4.0-py2.7.egg to /usr/local/lib/python2.7/dist-packages
gcalcli 3.4.0 is already the active version in easy-install.pth
Installing gcalcli script to /usr/local/bin

Installed /usr/local/lib/python2.7/dist-packages/gcalcli-3.4.0-py2.7.egg
Processing dependencies for gcalcli==3.4.0
error: Installed distribution pyasn1 0.1.7 conflicts with requirement pyasn1>=0.3.4,<0.4.0
pi@raspberrypi:~/gcalcli $ gcalcli agenda --noauth_local_webserver
Traceback (most recent call last):
  File "/usr/local/bin/gcalcli", line 4, in <module>
    __import__('pkg_resources').run_script('gcalcli==3.4.0', 'gcalcli')
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2876, in <module>
    working_set = WorkingSet._build_master()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 451, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 464, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 644, in resolve
    raise VersionConflict(dist, req)
pkg_resources.VersionConflict: (pyasn1 0.1.7 (/usr/lib/python2.7/dist-packages), Requirement.parse('pyasn1>=0.3.4,<0.4.0'))
Il y aurait-il une âme charitable pour me venir en aide?

Neutrino
Messages : 1593
Enregistré le : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)
Contact :

Re: Réussir à installer "gcalcli" sur Raspberry

Message par Neutrino »

Depuis la dernière version :

Code : Tout sélectionner

sudo pip install gcalcli
Et ça doit marcher :)
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?

waow29
Messages : 16
Enregistré le : 09 oct. 2016, 18:53

Re: Réussir à installer "gcalcli" sur Raspberry

Message par waow29 »

Merci Neutrino d'avoir pris le temps de me répondre

Quand je lance la commande que tu m'as indiqué, ça me donne ca

Code : Tout sélectionner

pi@raspberrypi:~ $ sudo pip install gcalcli
Requirement already satisfied (use --upgrade to upgrade): gcalcli in /usr/local/lib/python2.7/dist-packages/gcalcli-3.4.0-py2.7.egg
Requirement already satisfied (use --upgrade to upgrade): python-dateutil in /usr/lib/python2.7/dist-packages (from gcalcli)
Requirement already satisfied (use --upgrade to upgrade): python-gflags in /usr/lib/python2.7/dist-packages (from gcalcli)
Requirement already satisfied (use --upgrade to upgrade): httplib2 in /usr/local/lib/python2.7/dist-packages (from gcalcli)
Requirement already satisfied (use --upgrade to upgrade): google-api-python-client in /usr/local/lib/python2.7/dist-packages (from gcalcli)
Requirement already satisfied (use --upgrade to upgrade): oauth2client<=1.4.12 in /usr/local/lib/python2.7/dist-packages (from gcalcli)
Requirement already satisfied (use --upgrade to upgrade): six in /usr/lib/python2.7/dist-packages (from python-dateutil->gcalcli)
Requirement already satisfied (use --upgrade to upgrade): pyasn1>=0.1.7 in /usr/lib/python2.7/dist-packages (from oauth2client<=1.4.12->gcalcli)
Requirement already satisfied (use --upgrade to upgrade): pyasn1-modules>=0.0.5 in /usr/local/lib/python2.7/dist-packages (from oauth2client<=1.4.12->gcalcli)
Requirement already satisfied (use --upgrade to upgrade): rsa>=3.1.4 in /usr/local/lib/python2.7/dist-packages (from oauth2client<=1.4.12->gcalcli)
Cleaning up...
Et si je lance celle-ci

Code : Tout sélectionner

gcalcli agenda --noauth_local_webserver

Code : Tout sélectionner

pi@raspberrypi:~ $ gcalcli agenda --noauth_local_webserver
Traceback (most recent call last):
  File "/usr/local/bin/gcalcli", line 4, in <module>
    __import__('pkg_resources').run_script('gcalcli==3.4.0', 'gcalcli')
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2876, in <module>
    working_set = WorkingSet._build_master()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 451, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 464, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 644, in resolve
    raise VersionConflict(dist, req)
pkg_resources.VersionConflict: (pyasn1 0.1.7 (/usr/lib/python2.7/dist-packages), Requirement.parse('pyasn1>=0.3.4,<0.4.0'))
Je n'ai toujours pas l'URL d'activation.
Fau-il que je supprime les anciennes installation avant de relancer la commande que tu m'as indiqué?

Neutrino
Messages : 1593
Enregistré le : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)
Contact :

Re: Réussir à installer "gcalcli" sur Raspberry

Message par Neutrino »

pyasn1 semble poser problème.
Essaye

Code : Tout sélectionner

sudo pip install pyasn1 --upgrade
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?

Répondre