ok cet effectivement un moyen simple de diviser en paquets.
vissiblement une autre limitation de sqlite est l'absence de multithreads dans le module python que le gere. ce qui peut etre problématique.
merci de vos réponses.
En fait je fais une petite appli en python qui, pour chaque utilisateur de l'appli, stocke une vingtaine de fichiers tres légers (quelque kilo octet) dans des sous répertoire du nom de l'utilisateur.
je souhaite mettre ca en ligne prochainement et je ne sais pas encore gérer les bdd avec python, donc je me pose la question de réecrire le code avec gestion de bdd.
l'appli est tres rapide sur mon pc et dans mes souvenirs d'utilisations de bdd et sql, j'ai généralement trouvé la manipulation des bdd assez lente (indexation etc), d'où ma question.
je pense qu'avec vos réponses je devrais m'en sortir
merci
je n'ai pas la permission pour touch
j'ai la permission pour mkdir
j'ai la permission pour chmod sur un fichier
je n'ai pas la permission pour chmod sur un dossier
comment est ce que je peux remédier à ca avec fusesmb?
Salut,
je reviens sur cette histoire de controller.
dans le code plus haut, j'instancie PageOne à partir de l'instance de la classe Appli.
PageOne fait référence au controller dans sa méthode constructeur et je peux donc utiliser controller.fonctionA ou controller.fonctionB ou controller.attribut dans le déroulée de la methode constructeur.
Par contre, si je définis une fonction ou une méthode dans ma classe PageOne et que je fais référence à controller (qui est un des arguments de la methode constructeur) il ne comprend plus.
D'où ma question: est ce que c'est ok de faire un self.controller=controller dans la methode constructeur?
est ce que ca dédouble pas le constructeur? je sais que pour les listes par exemple a=liste1 et b=a font que a et b sont des alias qui renvoient au meme objet. Mais il n'en est pas de même pour d'autres types d'objets..
jai un soucis avec la distinction attribut et fonction:
j'instancie un objet Appli dont la classe est héritée de tk.
je crée un app=Appli()
jai définie une fonction à l'intérieur de la classe Appli
def create_occur(self,date,where):
print("hello {1} et {2}".format(date,where))
lorsque je fais un app.create_occur("1","2")
il me met
AttributeError: '_tkinter.tkapp' object has no attribute 'create_occcur'
comme si il comprenait pas que c'est une fonction?
une petite question supplémentaire: dans le cas du code ci-dessus, quand on instancie une StartPage, le constructeur de cette classe est défini par
def __init__(self, parent, controller): et la fonction qui l'instancie est définie dans la classe Appli par :
F(container, self) Du coup, le controller de l'instanciation de StartPage est bien l'objet instancié préalablement par la classe Appli, n'est ce pas?
ok merci, effectivement le code initial fait référence à controller pour le modèle mvc.
j'ai trouvé container dans une doc subsidiaire, cest assez incompréhensible: lorsqu'on met cette option sur 1 on a :
"this window will be used as a container in which some other application will be embedded[…]The window should not have any children of its own in this application"
En d'autres termes, la frame pourra "embeddé" (contenir) d'autres applications, mais ne devrait pas avoir de "children of its own". Pourtant, si une frame contient d'autre widgets, ces widgets sont bien des "children" de la frame non?
Pour les autres mots clés master, parent, et boss, cest simplement pour désigner la fenêtre "mère", mais d'apres quelques exemples dans Swinnen y a également le mot clé master qui semble "réservé" dans tkinter, notamment si on instancie un frame sans avoir pré-instancié une fenêtre mère. je me demandais si ces autres mots clés sont potentiellement "réservés" systématiquement mais ca ne semble pas le cas
J'ai trouvé un truc mais jai un petit soucis dans ma compréhension de la bibliothèque tkinter et en particulier de Frame.
Jai regardé la doc mais je n'ai pas trouvé.
Ainsi, lorsque j'instancie un Frame dans le code ci-dessous, je ne comprend pas comment la class StartPage définit une "référence" à la fenêtre déjà instancié par Tk.
Il y a les paramètre boss ou parent ou master que je vois souvent dans les codes ou dans la doc, mais sans que ce soit bien défini. et le parametre controller, mais je ne comprend pas bien. Dans la doc jai également vu le paramètre container=0 par défaut sans qu'il soit expliqué à quoi il sert.
D'où ma question : comment Tk et Frame interagissent entre eux pour
J'ai le meme soucis dans un exercice où un bouton instancie une nouvelle fenetre tk et je n'arrive pas à référencer les widgets de la nouvelle fenetre à la fenetre initiale.
import tkinter as tk
class Appli(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self)
container.pack(side="top", fill="both", expand = True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}#dictionnaire de fonction, chaque fonction
for F in (StartPage,Page2,Page3):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")#les pages sont toutes instanciées
self.page=StartPage
self.show_frame(self.page)
def show_frame(self, cont):
self.previous=self.page
self.page=cont
frame = self.frames[cont]
frame.tkraise()
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent)
label = tk.Label(self, text="Start Page", font=LARGE_FONT)
label.pack(pady=10,padx=10)
button = tk.Button(self, text="Entrer un évenement",
command=lambda: controller.show_frame(CatOne))
button.pack()
Je ne comprend pas "parent" et "controller". Visiblement
Posté par kr1p .
En réponse au message détecter \.
Évalué à 1.
ok merci
d'apres ce que j'ai compris les methodes de classe servent notamment à ce que les instanciations puissent "communiquer" entre elles, ou à manipuler une instanciation, elles servent d'interfaces
Mais dans le cas de la fonction foo() de la classe test Foo,quel est l'intérêt pour un programme python de définir cette fonction à l'intérieur de Foo? on ne pourra l'utiliser que si un objet de classe Foo est instancié, cest bien ca?
je ne comprend pas bien ce que ca changerait en termes de programmation exactement la meme fonction foo(): mais en la définissant par foo(self):
Enfin,si on ajoute des argument sans self à la fonction foo(arg1,arg2), et qu'on l'utilise dans une methode (constructeur ou d'autres methodes) en l'appliquant à des paramètre d'une instance Foo par exemple foo(self.age, self.taille), est ce que ca fonctionne? est ce que c'est une "mauvaise" pratique de programmation?
Posté par kr1p .
En réponse au message détecter \.
Évalué à 1.
ok, effectivement, j'ai trouvé tout seul.
je cherche juste à apprendre, en l'occurence écrire un dictionnaire vers un fichier puis recréer le dictionnaire à partir du fichier.
j'ai une autre question tant que j'y suis:
dans un objet
Class(object):
si je fais une methode/fonction
def fonction(argument):
sans mettre self dans les arguments, qu'est ce que ca change? est ce que je peux invoquer la fonction plus loin dans d'autres méthodes en l'appliquant à self ou est ce que python va bugguer et ne pas comprendre à quoi est rattachée cette fonction à l'interieur des methodes de l'objet?
jai essayé d'installer ces librairies mais j'ai eu quelques erreurs en compilant.
fusedav est téléchargeable dans les dépots par défaut de mon linux mint 19.3 et l'installation s'est bien déroulée.
fusedav a l'avantage sur davfs2 de se "monter" automatiquement avec une seule ligne dans les applications à lancer au démarrage et l'inconvénient de devoir mettre en clair le nom d'utilisateur et le mot de passe.
Mais pour mon utilisation (rsync d'un répertoire local) c'est pas mal.
j'ai cependant un message d'erreur
PROPFIND failed: 404 Not Found
qui s'affiche en boucle sans que cela empeche d'accéder et de faire des opérations sur le webdav distant monté sur un répertoire local.
Quelqu'un sait il d'où vient cette erreur et ce que cela signifie? Est ce lié aux propriétés des fichiers que le protocole webdav ne prend pas en charge?
il n'y a visiblement pas de probleme d'espace disque, je vais réessayer
en revanche lorsque j'essaie de supprimer les fichiers mentionnés ci dessus en root en ligne de commande j'ai le message d'erreur
"désolé, l'utilisateur x n'est pas autorisé à /bin/rm blabla en tant que root sur l'ordinateur"
avec le clavier virtuel, jai pus lancer une invite tty et ca se loggue.
En revanche quand je tappe startx
j'ai les erreurs suivantes:
xauth : unable to write authority file /tmp/serverauth.rBEtc3V2R8-n
xauth : unable to write authority file /home/bepere/.Xauthority-n
xauth : unable to write authority file /home/bepere/.Xauthority-n
(EE)
Fata server errorr:
(EE) Could not write pid to lock file in /tmp/.tX1-lock
(EE)
(EE)
Please consult the X-Org foundation support at http://wiki.x.org for help
(EE)
xinit:giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
ce raccourci clavier ne fonctionne pas depuis la fenetre de "connexion utilisateur". est ce que ce n'est pas un autre raccourci clavier pour passer en mode console?
merci
J'ai ajouté une session invité dans lightdm.conf mais quand je me connecte sur la session invité, j'ai le meme écran noir qui buggue (donc visiblement cest tres indirectement le mot de passe le probleme).
J'ai essayé avec le clavier virtuel aussi mais ca ne fonctionne pas
[^] # Re: iep
Posté par kr1p . En réponse au message temps d'acces fichier ou bdd. Évalué à 2.
ok cet effectivement un moyen simple de diviser en paquets.
vissiblement une autre limitation de sqlite est l'absence de multithreads dans le module python que le gere. ce qui peut etre problématique.
# iep
Posté par kr1p . En réponse au message temps d'acces fichier ou bdd. Évalué à 2.
merci de vos réponses.
En fait je fais une petite appli en python qui, pour chaque utilisateur de l'appli, stocke une vingtaine de fichiers tres légers (quelque kilo octet) dans des sous répertoire du nom de l'utilisateur.
je souhaite mettre ca en ligne prochainement et je ne sais pas encore gérer les bdd avec python, donc je me pose la question de réecrire le code avec gestion de bdd.
l'appli est tres rapide sur mon pc et dans mes souvenirs d'utilisations de bdd et sql, j'ai généralement trouvé la manipulation des bdd assez lente (indexation etc), d'où ma question.
je pense qu'avec vos réponses je devrais m'en sortir
merci
[^] # Re: Voir shutil
Posté par kr1p . En réponse au message gestion des droits os.copy2(). Évalué à 1.
j'ai essayé avec shutil.copy2() cest la meme chose
[^] # Re: au pif
Posté par kr1p . En réponse au message gestion des droits os.copy2(). Évalué à 1.
je n'ai pas la permission pour touch
j'ai la permission pour mkdir
j'ai la permission pour chmod sur un fichier
je n'ai pas la permission pour chmod sur un dossier
comment est ce que je peux remédier à ca avec fusesmb?
# au top
Posté par kr1p . En réponse au message instanciation objet tk.button et appels de fonctions. Évalué à 1.
merci ca roule
[^] # Re: Frame et imbrication d'instances
Posté par kr1p . En réponse au message exemple d'app python avec gui 'app smartphone'. Évalué à 1.
iep merci des rappels
apres test les objets et leurs attributs fonctionnent bien comme des listes
[^] # Re: Frame et imbrication d'instances
Posté par kr1p . En réponse au message exemple d'app python avec gui 'app smartphone'. Évalué à 1.
Salut,
je reviens sur cette histoire de controller.
dans le code plus haut, j'instancie PageOne à partir de l'instance de la classe Appli.
PageOne fait référence au controller dans sa méthode constructeur et je peux donc utiliser controller.fonctionA ou controller.fonctionB ou controller.attribut dans le déroulée de la methode constructeur.
Par contre, si je définis une fonction ou une méthode dans ma classe PageOne et que je fais référence à controller (qui est un des arguments de la methode constructeur) il ne comprend plus.
D'où ma question: est ce que c'est ok de faire un self.controller=controller dans la methode constructeur?
est ce que ca dédouble pas le constructeur? je sais que pour les listes par exemple a=liste1 et b=a font que a et b sont des alias qui renvoient au meme objet. Mais il n'en est pas de même pour d'autres types d'objets..
merci
[^] # Re: Frame
Posté par kr1p . En réponse au message exemple d'app python avec gui 'app smartphone'. Évalué à 1.
ahah putain j'ai du passer une demi heure à chercher
merci
[^] # Re: Frame
Posté par kr1p . En réponse au message exemple d'app python avec gui 'app smartphone'. Évalué à 1.
jai un soucis avec la distinction attribut et fonction:
j'instancie un objet Appli dont la classe est héritée de tk.
je crée un app=Appli()
jai définie une fonction à l'intérieur de la classe Appli
lorsque je fais un app.create_occur("1","2")
il me met
AttributeError: '_tkinter.tkapp' object has no attribute 'create_occcur'
comme si il comprenait pas que c'est une fonction?
[^] # Re: Frame
Posté par kr1p . En réponse au message exemple d'app python avec gui 'app smartphone'. Évalué à 1. Dernière modification le 18 juin 2020 à 18:09.
une petite question supplémentaire: dans le cas du code ci-dessus, quand on instancie une StartPage, le constructeur de cette classe est défini par
et la fonction qui l'instancie est définie dans la classe Appli par :def __init__(self, parent, controller):
Du coup, le controller de l'instanciation de StartPage est bien l'objet instancié préalablement par la classe Appli, n'est ce pas?F(container, self)
[^] # Re: Frame
Posté par kr1p . En réponse au message exemple d'app python avec gui 'app smartphone'. Évalué à 1.
ok merci, effectivement le code initial fait référence à controller pour le modèle mvc.
j'ai trouvé container dans une doc subsidiaire, cest assez incompréhensible: lorsqu'on met cette option sur 1 on a :
"this window will be used as a container in which some other application will be embedded[…]The window should not have any children of its own in this application"
En d'autres termes, la frame pourra "embeddé" (contenir) d'autres applications, mais ne devrait pas avoir de "children of its own". Pourtant, si une frame contient d'autre widgets, ces widgets sont bien des "children" de la frame non?
Pour les autres mots clés master, parent, et boss, cest simplement pour désigner la fenêtre "mère", mais d'apres quelques exemples dans Swinnen y a également le mot clé master qui semble "réservé" dans tkinter, notamment si on instancie un frame sans avoir pré-instancié une fenêtre mère. je me demandais si ces autres mots clés sont potentiellement "réservés" systématiquement mais ca ne semble pas le cas
# Frame
Posté par kr1p . En réponse au message exemple d'app python avec gui 'app smartphone'. Évalué à 1. Dernière modification le 17 juin 2020 à 23:23.
J'ai trouvé un truc mais jai un petit soucis dans ma compréhension de la bibliothèque tkinter et en particulier de Frame.
Jai regardé la doc mais je n'ai pas trouvé.
Ainsi, lorsque j'instancie un Frame dans le code ci-dessous, je ne comprend pas comment la class StartPage définit une "référence" à la fenêtre déjà instancié par Tk.
Il y a les paramètre boss ou parent ou master que je vois souvent dans les codes ou dans la doc, mais sans que ce soit bien défini. et le parametre controller, mais je ne comprend pas bien. Dans la doc jai également vu le paramètre container=0 par défaut sans qu'il soit expliqué à quoi il sert.
D'où ma question : comment Tk et Frame interagissent entre eux pour
J'ai le meme soucis dans un exercice où un bouton instancie une nouvelle fenetre tk et je n'arrive pas à référencer les widgets de la nouvelle fenetre à la fenetre initiale.
Je ne comprend pas "parent" et "controller". Visiblement
# thx
Posté par kr1p . En réponse au message détecter \. Évalué à 1.
merci, je pense que ma compréhension s'affinera au fur et à mesure que je coderai et que j'expérimenterai de toute façon
# ok
Posté par kr1p . En réponse au message détecter \. Évalué à 1.
ok merci
d'apres ce que j'ai compris les methodes de classe servent notamment à ce que les instanciations puissent "communiquer" entre elles, ou à manipuler une instanciation, elles servent d'interfaces
Mais dans le cas de la fonction foo() de la classe test Foo,quel est l'intérêt pour un programme python de définir cette fonction à l'intérieur de Foo? on ne pourra l'utiliser que si un objet de classe Foo est instancié, cest bien ca?
je ne comprend pas bien ce que ca changerait en termes de programmation exactement la meme fonction foo(): mais en la définissant par foo(self):
Enfin,si on ajoute des argument sans self à la fonction foo(arg1,arg2), et qu'on l'utilise dans une methode (constructeur ou d'autres methodes) en l'appliquant à des paramètre d'une instance Foo par exemple foo(self.age, self.taille), est ce que ca fonctionne? est ce que c'est une "mauvaise" pratique de programmation?
# ok
Posté par kr1p . En réponse au message détecter \. Évalué à 1.
ok, effectivement, j'ai trouvé tout seul.
je cherche juste à apprendre, en l'occurence écrire un dictionnaire vers un fichier puis recréer le dictionnaire à partir du fichier.
j'ai une autre question tant que j'y suis:
dans un objet
Class(object):
si je fais une methode/fonction
def fonction(argument):
sans mettre self dans les arguments, qu'est ce que ca change? est ce que je peux invoquer la fonction plus loin dans d'autres méthodes en l'appliquant à self ou est ce que python va bugguer et ne pas comprendre à quoi est rattachée cette fonction à l'interieur des methodes de l'objet?
[^] # Re: Par défaut ?
Posté par kr1p . En réponse au message module désinstallé tout seul. Évalué à 1.
merci, cest bon j'ai finalement trouvé.
par contre je n'ai pas compris comment le module s'est désinstallé..
Y a-t-il des trucs pour "traduire" une interface tkinter en GTK ou Qt?
[^] # Re: fuse
Posté par kr1p . En réponse au message Linux mint 19.3 utiliser fuse pour monter un webdav. Évalué à 1.
jai essayé d'installer ces librairies mais j'ai eu quelques erreurs en compilant.
fusedav est téléchargeable dans les dépots par défaut de mon linux mint 19.3 et l'installation s'est bien déroulée.
fusedav a l'avantage sur davfs2 de se "monter" automatiquement avec une seule ligne dans les applications à lancer au démarrage et l'inconvénient de devoir mettre en clair le nom d'utilisateur et le mot de passe.
Mais pour mon utilisation (rsync d'un répertoire local) c'est pas mal.
j'ai cependant un message d'erreur
PROPFIND failed: 404 Not Found
qui s'affiche en boucle sans que cela empeche d'accéder et de faire des opérations sur le webdav distant monté sur un répertoire local.
Quelqu'un sait il d'où vient cette erreur et ce que cela signifie? Est ce lié aux propriétés des fichiers que le protocole webdav ne prend pas en charge?
[^] # Re: fuse
Posté par kr1p . En réponse au message Linux mint 19.3 utiliser fuse pour monter un webdav. Évalué à 1.
j'ai trouvé ca:
webdavfs
https://github.com/miquels/webdavfs
fusedav
https://github.com/pantheon-systems/fusedav
et
wdfs
https://github.com/jmesmon/wdfs
des suggestions?
# fuse
Posté par kr1p . En réponse au message Linux mint 19.3 utiliser fuse pour monter un webdav. Évalué à 1.
quelqu'un sait il où je peux trouver le tutoriel pour utiliser fuse avec webdav?
[^] # Re: sur une mageia (7)
Posté par kr1p . En réponse au message Linux mint 19.3 utiliser fuse pour monter un webdav. Évalué à 1.
jai aussi essayé avec ca, à quoi correspondent les options noexec,nosuid,nodev?
# espace disque ok
Posté par kr1p . En réponse au message Linux mint 19.3 - probleme mot de passe utilisateur. Évalué à 1.
il n'y a visiblement pas de probleme d'espace disque, je vais réessayer
en revanche lorsque j'essaie de supprimer les fichiers mentionnés ci dessus en root en ligne de commande j'ai le message d'erreur
"désolé, l'utilisateur x n'est pas autorisé à /bin/rm blabla en tant que root sur l'ordinateur"
# tty
Posté par kr1p . En réponse au message Linux mint 19.3 - probleme mot de passe utilisateur. Évalué à 1.
avec le clavier virtuel, jai pus lancer une invite tty et ca se loggue.
En revanche quand je tappe startx
j'ai les erreurs suivantes:
xauth : unable to write authority file /tmp/serverauth.rBEtc3V2R8-n
xauth : unable to write authority file /home/bepere/.Xauthority-n
xauth : unable to write authority file /home/bepere/.Xauthority-n
(EE)
Fata server errorr:
(EE) Could not write pid to lock file in /tmp/.tX1-lock
(EE)
(EE)
Please consult the X-Org foundation support at http://wiki.x.org for help
(EE)
xinit:giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
[^] # Re: partition saturée
Posté par kr1p . En réponse au message Linux mint 19.3 - probleme mot de passe utilisateur. Évalué à 1. Dernière modification le 05 juin 2020 à 18:24.
df -i me donne une utilisation de 6% sur /
[^] # Re: autres suggestions?
Posté par kr1p . En réponse au message Linux mint 19.3 - probleme mot de passe utilisateur. Évalué à 1.
ce raccourci clavier ne fonctionne pas depuis la fenetre de "connexion utilisateur". est ce que ce n'est pas un autre raccourci clavier pour passer en mode console?
merci
# lightdm.conf
Posté par kr1p . En réponse au message Linux mint 19.3 - probleme mot de passe utilisateur. Évalué à 1.
J'ai ajouté une session invité dans lightdm.conf mais quand je me connecte sur la session invité, j'ai le meme écran noir qui buggue (donc visiblement cest tres indirectement le mot de passe le probleme).
J'ai essayé avec le clavier virtuel aussi mais ca ne fonctionne pas