Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Problème import tkinter

+1 vote

Version Linux 3.12.24-1-MANJARO i686 GNU/Linux (basé sur Archlinux)
Version python : Python3

J'essaye d'exécuter un programme utilisant tkinter qui fonctionne en temps normal (sur des versions type ubuntu).

python3 mainprojfork.py
Traceback (most recent call last): File "mainproj
fork.py", line 1, in
import tkinter as tk File "/usr/lib/python3.4/tkinter/init.py", line 38, in
import _tkinter # If this fails your Python may not be configured for Tk ImportError: libtk8.6.so: cannot open shared object file: No
such file or directory

Je pense que le problème est dû à Archlinux mais je suis assez novice sur cette distrib (- d'un jour...).
Peut être qu'il faut télécharger des trucs avec pipe install ?
Voilà, j'espère avoir été assez clair.

Cordialement.

demandé 4-Mar-2015 par boblinux (3,092 points)

2 Réponses

+3 votes
 
Meilleure réponse

Il te faut install le paquet tk (dependance optionnelle de Tkinter). Sous Arch, un simple

pacman -S tk

devrait résoudre l'affaire. Plus d'informations sur le paquet tk par ici.

Pour savoir si un paquet est installé sous Archlinux, faire un:

pacman -Q <nom_du_paquet>
répondu 4-Mar-2015 par c0da (2,746 points)
sélectionné 4-Mar-2015 par boblinux

ça ne fonctionne pas...

sudo pacman -S tk
[sudo] password for boblinuxz: 
résolution des dépendances...
recherche des conflits entre paquets...

Paquets (2) tcl-8.6.3-1  tk-8.6.3-1

Taille totale du téléchargement :   1,77 MiB
Taille totale installée :         11,03 MiB
Taille de mise à jour nette :      4,64 MiB

:: Procéder à l’installation ? [O/n] o
:: Récupération des paquets...
 tk-8.6.3-1-i686         1814,9 KiB   185K/s 00:10 [######################] 100%
(2/2) vérification des clés dans le trousseau      [######################] 100%
téléchargement des clés requises...
:: Importer la clé PGP 2048R9205AC90, « Eric Belanger <eric@archlinux.org> », créée le 2011-04-20 ? [O/n] o
(2/2) vérification de l’intégrité des paquets      [######################] 100%
erreur : tcl: signature from "Eric Belanger <eric@archlinux.org>" is unknown trust
:: Le fichier /var/cache/pacman/pkg/tcl-8.6.3-1-i686.pkg.tar.xz est corrompu (paquet invalide ou corrompu (signature PGP)).
Voulez-vous le supprimer ? [O/n] o
erreur : tk: signature from "Eric Belanger <eric@archlinux.org>" is unknown trust
:: Le fichier /var/cache/pacman/pkg/tk-8.6.3-1-i686.pkg.tar.xz est corrompu (paquet invalide ou corrompu (signature PGP)).
Voulez-vous le supprimer ? [O/n] o
erreur : la validation de la transaction a échoué (paquet invalide ou corrompu (signature PGP))
Des erreurs se sont produites, aucun paquet n’a été mis à jour.

Pacman utilise des clés GnuPG pour déterminer si les paquets sont authentiques, tu dois donc le configurer comme tu le souhaites. Je te conseille de lire le wiki Archlinux sur pacman-key.

En fait j'avais dejà jeté un coup d'oeil à ce wiki, mais en vain...
Je ne sais pas si je peux continuer ici à parler de mon problème de peur de faire du H-S mais bon, ça pourra peut-être aidé un autre avec le même problème.
Je n'arrive pas à saisir ce qu'il faut faire pour résoudre mon problème... je pense que c'est le fichier /etc/pacman.conf qu'il faut modifier mais je ne vois pas quoi modifer, voici mon fichier :

cat /etc/pacman.conf 
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives

#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
#GPGDir      = /etc/pacman.d/gnupg/
HoldPkg      = pacman glibc manjaro-system
# If upgrades are available for these packages they will be asked for first
SyncFirst    = manjaro-system
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta    = 0.7
Architecture = auto

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg   =
#IgnoreGroup =

#NoUpgrade   =
#NoExtract   =

# Misc options
#UseSyslog
#Color
#TotalDownload
CheckSpace
#VerbosePkgLists

# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel    = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required

# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Manjaro Linux
# packagers with `pacman-key --populate archlinux manjaro`.

#
# REPOSITORIES
#   - can be defined here or included from another file
#   - pacman will search repositories in the order defined here
#   - local/custom mirrors can be added here or in separate files
#   - repositories listed first will take precedence when packages
#     have identical names, regardless of version number
#   - URLs will have $repo replaced by the name of the current repo
#   - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
#       [repo-name]
#       Server = ServerName
#       Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#

[core]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

[extra]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

[community]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

Je t'en demande peut-être un peu trop mais pourrais-tu m'indiquer quoi modifier précisément ? =/
ps : j'ai passé ma journée à essayer de résoudre ce pb mais en vain...)='

C'est effectivement H.S mais si je peux aider...
En clair, tu dois fixer un niveau de vérification des signatures GnuPG sur les paquets que tu souhaites installer. A la ligne 42 du fichier /etc/pacman.conf il faut sélectionner le SigLevel (à qui faire confiance). La liste des différents SigLevel est disponible par ici.

P.S: Pour éviter les H.S, tu peux me faire un message privé. J'essayerai de t'aider comme je peux. :)

+1 vote

Le fichier qu'il te manque libtk8.6.so est dans le package tk.
Donc un:

pacman -S tk

devrait résoudre ton problème!

répondu 4-Mar-2015 par bulange (618 points)

Même problème qu'avec c0da =s

sudo pacman -S tk
[sudo] password for boblinuxz: 
résolution des dépendances...
recherche des conflits entre paquets...

Paquets (2) tcl-8.6.3-1  tk-8.6.3-1

Taille totale du téléchargement :   1,77 MiB
Taille totale installée :         11,03 MiB
Taille de mise à jour nette :      4,64 MiB

:: Procéder à l’installation ? [O/n] o
:: Récupération des paquets...
 tk-8.6.3-1-i686         1814,9 KiB   185K/s 00:10 [######################] 100%
(2/2) vérification des clés dans le trousseau      [######################] 100%
téléchargement des clés requises...
:: Importer la clé PGP 2048R9205AC90, « Eric Belanger <eric@archlinux.org> », créée le 2011-04-20 ? [O/n] o
(2/2) vérification de l’intégrité des paquets      [######################] 100%
erreur : tcl: signature from "Eric Belanger <eric@archlinux.org>" is unknown trust
:: Le fichier /var/cache/pacman/pkg/tcl-8.6.3-1-i686.pkg.tar.xz est corrompu (paquet invalide ou corrompu (signature PGP)).
Voulez-vous le supprimer ? [O/n] o
erreur : tk: signature from "Eric Belanger <eric@archlinux.org>" is unknown trust
:: Le fichier /var/cache/pacman/pkg/tk-8.6.3-1-i686.pkg.tar.xz est corrompu (paquet invalide ou corrompu (signature PGP)).
Voulez-vous le supprimer ? [O/n] o
erreur : la validation de la transaction a échoué (paquet invalide ou corrompu (signature PGP))
Des erreurs se sont produites, aucun paquet n’a été mis à jour.

Est-ce que ça vaut le coup d'essayer de taper "O" plutôt que "o" ? Ou tout simplement taper [Entrée] puisque le "O" est le défaut ?

J'ai l'impression qu'il te pose 2 fois la même question ?

Pas compris ton intervention sur le "O" "o" "0" ... lol x)

Sinon mon problème n'est toujours pas résolu, le système de clé juste pour télécharger un logiciel me floute la vue =s.

Je n'arrive pas à trouver de réelle solution au problème.

ps : "J'ai l'impression qu'il te pose 2 fois la même question ?"
Qui est "il"? de quelle question parles-tu?"

Oups, désolé, je suis pas bien réveillé... Je vais donc me coucher... :D

J'aurais essayé ça:

$ sudo pacman-key --init
$ sudo pacman-key --populate archlinux

ou alors de mettre un:

SigLevel = Never

quelque part dans pacman.conf

(de https://wiki.archlinux.org/index.php/pacman-key)

Pour l'option never :

Attention: L'option Never est fortement déconseillée. Désactiver la
vérification autorisera pacman à installer automatiquement tout paquet
!

J'ai quand même un truc à la fin de l'installation qui foire du genre :

:: Le fichier /var/cache/pacman/pkg/tcl-8.6.3-1-i686.pkg.tar.xz est corrompu (paquet invalide ou corrompu (signature PGP)).
Voulez-vous le supprimer ? [O/n] o
erreur : tk: signature from "Eric Belanger <eric@archlinux.org>" is unknown trust
:: Le fichier /var/cache/pacman/pkg/tk-8.6.3-1-i686.pkg.tar.xz est corrompu (paquet invalide ou corrompu (signature PGP)).
Voulez-vous le supprimer ? [O/n] o
erreur : la validation de la transaction a échoué (paquet invalide ou corrompu (signature PGP))
Des erreurs se sont produites, aucun paquet n’a été mis à jour.

Sinon j'ai essayé les :
$ sudo pacman-key --init
$ sudo pacman-key --populate archlinux
et ça donne ...

   sudo pacman-key --init
   sudo pacman-key --populate archlinux
    ==> ERREUR : Le fichier de porte-clefs /usr/share/pacman/keyrings/archlinux.gpg n’existe pas.

C'est ça la façon de Archlinux de souhaiter la bienvenue aux débutants ? x')

...