pg:connect et Emacs

Le
Stephane Tougard
Bonjour à tous,

J'ai installé le package pg.el. Par contre, lorsque j'essaye d'éx=
ecuter
un script (emacs --script) avec les fonctions de ce module :

(let* conn (pg:connect "stephane" "stephane" "*****" "127.0.0.1" ))
(res (pg:exec conn "SELECT * from m")))
(message "status is %s" (pg:result res :status))
(message "metadata is %s" (pg:result res :attributes))
(message "data is %s" (pg:result res :tuples))
(pg:disconnect conn))


J'ai une superbe erreur

Symbol's function definition is void: pg:connect

J'ai essayé avec le (require 'pg)

Cannot open load file: no such file or directory, pg


Si quelqu'un peut soumettre un exemple de code qui marche ou bien
pointer sur le détail qui m'échappe.

Merci
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
vincent.belaiche
Le #26429046
Mes commentaires insérés ci après :
Stephane Tougard
Bonjour à tous,
J'ai installé le package pg.el. Par contre, lorsque j'essaye d'éxecuter
un script (emacs --script) avec les fonctions de ce module :
(let* conn (pg:connect "stephane" "stephane" "*****" "127.0.0.1" ))
(res (pg:exec conn "SELECT * from m")))
(message "status is %s" (pg:result res :status))
(message "metadata is %s" (pg:result res :attributes))
(message "data is %s" (pg:result res :tuples))
(pg:disconnect conn))


Cette expression me semble incorrecte (2 parenthèses ouvrantes manquent
après le let*), Il faudrait me semble-t-il :
(let* ((conn (pg:connect "stephane" "stephane" "*****" "127.0.0.1" ))
(res (pg:exec conn "SELECT * from m")))
(message "status is %s" (pg:result res :status))
(message "metadata is %s" (pg:result res :attributes))
(message "data is %s" (pg:result res :tuples))
(pg:disconnect conn))
J'ai une superbe erreur
Symbol's function definition is void: pg:connect
J'ai essayé avec le (require 'pg)
Cannot open load file: no such file or directory, pg
Si quelqu'un peut soumettre un exemple de code qui marche ou bien
pointer sur le détail qui m'échappe.
Merci

D'après l'erreur
Cannot open load file: no such file or directory, pg
on dirait que tu n'as pas mis le chemin de pg.el dans ton load-path.
évalue : (add-to-list 'load-path "/le/chemin/de/pg")
Sinon tu fais :
M-x toggle-debug-on-error
tu evalues ton code et tu regardes dans la trace débogueur où ça plante.
Vincent.
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Stephane Tougard
Le #26429048
(Vincent Belaïche) writes:
D'après l'erreur
Cannot open load file: no such file or directory, pg
on dirait que tu n'as pas mis le chemin de pg.el dans ton load-path.
évalue : (add-to-list 'load-path "/le/chemin/de/pg")

J'ai installé le package via la gestion des packages de
Emacs. D'habitude ça marche out of the box.
D'ailleurs, M-x help f ... me donne accès aux fonctions et lorsque je
clique sur le fichier pg.el, il est chargé dans un buffer. J'aurais
tendance à penser que tout est correct.
M-x toggle-debug-on-error
tu evalues ton code et tu regardes dans la trace débogueur où ça plante.

Ce qui m'indique rien de plus, mais je le fais peut-être pas correctem ent.
vincent.belaiche
Le #26429118
Stephane Tougard
(Vincent Belaïche) writes:
D'après l'erreur
Cannot open load file: no such file or directory, pg
on dirait que tu n'as pas mis le chemin de pg.el dans ton load-path.
évalue : (add-to-list 'load-path "/le/chemin/de/pg")

J'ai installé le package via la gestion des packages de
Emacs. D'habitude ça marche out of the box.
D'ailleurs, M-x help f ... me donne accès aux fonctions et lorsque je
clique sur le fichier pg.el, il est chargé dans un buffer. J'aurais
tendance à penser que tout est correct.

Est-ce que si tu évalues
(load "pg.el")
ça trouve bien le fichier ?
Et sinon, qu'a donné la correction sur l'expression en let* que
j'indiquais dans mon message précédent ?
Vincent
[...]

---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Stephane Tougard
Le #26429132
(Vincent Belaïche) writes:
Est-ce que si tu évalues
(load "pg.el")

Cannot open load file: no such file or directory, pg.el
:~/.emacs.d$ find . -name pg.el
./elpa/pg-20130731.1442/pg.el
Forcément, ça aide pas. Mais pourquoi diable ça marche avec tous les
autres packages installés ?
Et sinon, qu'a donné la correction sur l'expression en let* que
j'indiquais dans mon message précédent ?

Ça ne change rien, mais à noter qu'aucune des fonctions du module ne marche.
vincent.belaiche
Le #26429322
Stephane Tougard
(Vincent Belaïche) writes:
Est-ce que si tu évalues
(load "pg.el")

Cannot open load file: no such file or directory, pg.el
:~/.emacs.d$ find . -name pg.el
./elpa/pg-20130731.1442/pg.el
Forcément, ça aide pas. Mais pourquoi diable ça marche avec tous les
autres packages installés ?


Ch'ais pas, moi j'installe mes paquetages à l'ancienne, je n'ai jamais
encore utilisé la fonction package. Peut-être tu avais une ancienne
version dans un autre répertoire et il cherche toujours
l'ancienne... ménage mal fait ou un truc de ce genre...
Essaie toujours d'évaluer d'abord
(add-to-list 'load-path "~/.emacs.d/elpa/pg-20130731.1442/")
puis
(load "pg.el")
Et sinon, qu'a donné la correction sur l'expression en let* que
j'indiquais dans mon message précédent ?

Ça ne change rien, mais à noter qu'aucune des fonctions du module ne marche.

Si le paquetage n'est pas chargé, ça ne sert à rien d'aller plus
loin. Tant que l'évaluation de l'expression (require 'pg) plante, rien
de ce qui utilisera pg ne fonctionnera.
Au fait, c'est quoi pg, et à quoi ça sert ?
Vincent.
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Stephane Tougard
Le #26429323
(Vincent Belaïche) writes:
Au fait, c'est quoi pg, et à quoi ça sert ?

Cela sert à se connecter à Postgresql depuis Emacs.
Stephane Tougard
Le #26429324
(Vincent Belaïche) writes:
Essaie toujours d'évaluer d'abord
(add-to-list 'load-path "~/.emacs.d/elpa/pg-20130731.1442/")

Ça fonctionne (même si j'ai le sentiment que j'ai loupé un épisode
quelque part).
vincent.belaiche
Le #26429494
Stephane Tougard
(Vincent Belaïche) writes:
Essaie toujours d'évaluer d'abord
(add-to-list 'load-path "~/.emacs.d/elpa/pg-20130731.1442/")

Ça fonctionne (même si j'ai le sentiment que j'ai loupé un épisode
quelque part).

Pour charger un paquetage Emacs a besoin que le chemin où se trouve le
fichier correspondant soit dans la liste contenue dans la variable
load-path. Je suppose que la déclaration du paquetage a pour effet de
mettre à jour cette liste.
Comme pg.el est dans le chemin ~/.emacs.d/elpa/pg-20130731.1442/, en
ajoutant (add-to-list 'load-path "~/.emacs.d/elpa/pg-20130731.1442/")
dans ton fichier d'init alors tu garanties que le chemin en question
soit dans la liste.
J'ai pensé à une autre source du problème : sans doute que la
déclaration des paquetages est faite en un point A ton fichier d'init,
alors si tu essaies de charger pg en un point B de ton fichier d'init et
que B est avant A, ça n'est pas encore déclaré.
Vincent.
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Publicité
Poster une réponse
Anonyme