Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/10/2022, à 14:11

f6aap

[Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Bonjour ,

Je viens de passer sous Ubuntu 22.04 .

Dans un script Python j'utilise la fonction :  x = pyperclip.paste() et je récupére une zone vide alors que le même script sous Ubuntu 20.04 me donne la valeur du copier (ctl + c)

Merci de votre aide pour solutionner ce problème

Cordialement

Dernière modification par f6aap (Le 10/11/2022, à 12:08)

Hors ligne

#2 Le 26/10/2022, à 15:29

Vobul

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Bonjour,

Tu ne donnes ni exemple de code, ni version de python utilisée, ni version de la librairie utilisée. D'autre part, le readme indique ça :

On Linux, this module makes use of the xclip or xsel commands, which should come with the os. Otherwise run “sudo apt-get install xclip” or “sudo apt-get install xsel” (Note: xsel does not always seem to work.)
Otherwise on Linux, you will need the gtk or PyQt4 modules installed.

T'as xclip ou xsel ou pyqt4 d'installé ?


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#3 Le 26/10/2022, à 16:25

f6aap

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Désolé pour le manque de precision

OS Ubuntu 22.04 , Python 3.10.6 pyperclip version 1.8.2-2

def doc_ajout(event):
    global a61
    global a6
    global coller

    a61= pyperclip.paste()

    print("split",a61)
    enr = a61.split("/")
    print("a61", a61)

Je fais un ctl +c pour alimenter le presse papier et normalement je dois retrouver le contenu du presse papier dans la variable a61

Le script python fonctionne normalement sous Ubuntu 20.04

Merci de votre aide,

Cordialement

Hors ligne

#4 Le 26/10/2022, à 16:58

Vobul

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Relis la deuxième partie de mon message. Surtout la question à la fin.


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#5 Le 26/10/2022, à 17:48

f6aap

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Merci pour la réponse,

xclip, xsel, pyqt4 ne sont pas installés sur ma machine.

Si j'ai bien compris xclip et xsel sont utilisables en ligne de commande, : je ne vois pas comment inserer ce mode de fonctionnement dans le script de python.

Dans mon tutilisation le ctl + c est sensé alimenter le presse papier et normalement la ligne  a61= pyperclip.paste() doit récupérer le contenu du presse papier.

Dans mon script j'ai l'import de pyperclip

Désolé pour mes lacunes   

Cordialement

Hors ligne

#6 Le 26/10/2022, à 17:57

Vobul

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Non en fait c'est pyperclip qui va utiliser xsel/xclip, toi t'as juste à l'installer et la librairie python se charge de l'utiliser.


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#7 Le 26/10/2022, à 18:17

f6aap

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Merci pour la réponse ,

Par contre je ne vois pas comment utiliser xsel/xclip et mettre à jour mon script.

J'ai encore beaucoup de chose à apprendre,

Cordialement

Hors ligne

#8 Le 26/10/2022, à 18:47

Vobul

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Désolé, je ne vois pas comment être plus clair. Comme indiqué dans la documentation de la librairie :

sudo apt-get install xclip

Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#9 Le 26/10/2022, à 20:32

f6aap

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Bonsoir,

Avant ma dernière réponse j'avais installé xclip.

J'ai excuté mon script mais cela n'a rien changé

Je ne sais plus quoi faire, merci d'éclairer ma lanterne.

Bonne soirée

Hors ligne

#10 Le 26/10/2022, à 21:01

Vobul

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Tu l'as installée comment la lib ?


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#11 Le 27/10/2022, à 09:46

f6aap

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Bonjour,

Via sudo apt install xclip

Cordialement

Hors ligne

#12 Le 27/10/2022, à 10:18

Compte supprimé

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Bonjour,
Normalement, quand un truc va pas, python le dit.
Et que retourne ceci? :

>>> import pyperclip
>>> pyperclip.copy('Hello, world!')
>>> pyperclip.paste()
'Hello, world!'

#13 Le 27/10/2022, à 11:04

f6aap

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Voici le  retour ;

Python 3.10.6 (main, Aug 10 2022, 11:40:04) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyperclip
>>> pyperclip.copy('Hello, world!')
>>> pyperclip.paste()
'Hello, world!'
>>> 

Hors ligne

#14 Le 27/10/2022, à 11:39

Compte supprimé

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Donc aucun souci niveau de la lib... Ton problème se situe au niveau de ton copié dans le presse-papier. C'est à ce niveau-là qu'il te faut investiguer...

#15 Le 27/10/2022, à 13:17

f6aap

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Lorsque j'exécute mon scipt python voila ce que j'obtiens sachant que le presse papier conrient : /home/daniel/Telechargement/Simulation.pdf

docajou .!entry31
a6 .!entry31
split 
a61 
a61 

pour la partie de code suivant

def docajout():
    global f6
    global a6
    
    a6.destroy()
    a6 = Entry(fen,font="arial 12")
    a6.grid(row=4,column=10)

    print('docajou',a6)
    a6.bind('<Return>',doc_ajout)
    print("a6",a6)


#   f6.destroy()

def doc_ajout(event):
    global a61
    global a6
    global coller

    a61= pyperclip.paste()

    print("split",a61)
    enr = a61.split("/")
    print("a61", a61)

Lorsque j'exécute le même script sous Ubuntu 20.04 à la place de !entry31 j'affiche :  /home/daniel/Telechargement/Simulation.pdf

Je ne comprend pas l'erreur !entry31

Si vous avez une idée, je suis preneur, et merci encore pour le temps passé

Cordialement

Hors ligne

#16 Le 27/10/2022, à 13:52

Vobul

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

C'est quoi ces noms de variables ??

Envoie le contenu avec xclip (voir man xclip), car linux a plusieurs presse-papiers. Puis fais simplement un print(pyperclip.paste()) dans le repl.

Mais sérieux ton code il est super bizarre. On dirait qu'il est obfusqué quoi ! Si tu montres du code, montre juste la partie qui nous intéresse, pas d'autres trucs sans relation et pas reproductible ! Réduit le code à sa plus simple expression pour montrer un problème.

Je viens de tester aussi de mon côté, ça fonctionne très bien, regarde :

echo -n "Dany le rouge" | xclip -selection clipboard
cd /tmp
mkdir t
cd t
pipenv install pyperclip
pipenv shell
python
>>> import pyperclip()
>>> pyperclip.paste()
'Dany le rouge'

Bien sûr tu peux skipper la partie où j'installe la lib avec pipenv hein, vu que tu l'as installée avec pip j'imagine.

Dernière modification par Vobul (Le 27/10/2022, à 13:53)


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#17 Le 27/10/2022, à 17:24

f6aap

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Cela fonctionne  mais je ne sais toujours pas comment mettre en place dans mon script

Par contre j'ai contourné le problème à l'aide cette instruction : entree = input("URL fichier : ")

Ce n'est pas très élégant mais cela me permet de continuer à utiliser mon appli qui est une GED

Merci de votre aide

Bonne soirée,

Cordialement

Hors ligne

#18 Le 27/10/2022, à 18:18

Compte supprimé

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

@f6aap:
Je vois que tu utilises tkinter...
Autant gérer le clipboard avec .
Voir la méthode clipboard_get()

#19 Le 02/11/2022, à 15:43

f6aap

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Bonjour,

J'ai enfin trouver le code qui va bien :

    from tkinter import Tk
    r = Tk()
    r.withdraw()
    url = r.clipboard_get()
    r.destroy
#    print(url)
#   f6.destroy()

Vos remarques sur le code est fondé.
J'ai écrit ce code pour réaliser une GED sans connaitre Python.
Tout à été construit pas à pas
Maintenant que cela répond à mes besoins, j'ai en projet de tout réecrire en étant plus pro.
Voici un apperçu  :
[img]/home/daniel/Images/Capture d’écran du 2022-11-02 14-28-27.png[/img]

Encore merci de votre aide

Hors ligne

#20 Le 03/11/2022, à 06:54

Compte supprimé

Re : [Résolu]Python pyperclip.paste() ne marche pas Ubuntu 22.04

Bonjour,

f6aap a écrit :

J'ai écrit ce code pour réaliser une GED sans connaitre Python.

ça se voit  roll.
Si ton code semble marcher, c'est uniquement par chance(absence du mainloop, destroy est une méthode pas un attribut, ...)
Tout cela va vite se casser la gueule et sans étudier python tu vas vite te trouver dans une impasse..
Regarde le lien de ma signature, tu y trouveras de belles formations sur python3.

Dernière modification par Compte supprimé (Le 03/11/2022, à 06:55)