Seite 1 von 1

Tkinter Installation. _Tkinter wird nicht gefunden!

Verfasst: Montag 14. August 2006, 16:12
von kkom
Ich möchte gern mit dem Tkinter anfangen, habe aber Schwierigkeit die Installation durchzuführen.
Ich habe Python downgeloaded und installiert (auf HP-Unix). Beim Aufruf of " import Tkinter" kommt diese Fehlermeldung vor :
- import _tkinter # If this fails your Python may not be configured for Tk --

Wie kann ich das lösen?
Vielleicht hat Jemand bereits Erfahrung mit diese Fehlermeldung gesamelt!
Bitte helfen Sie mich. ich muss schnell weiterkommen...

Vielen Dank vorhaus.

KKom

Verfasst: Montag 14. August 2006, 22:09
von BlackJack
Wie hast Du denn installiert?

Verfasst: Dienstag 15. August 2006, 08:54
von kkom
BlackJack hat geschrieben:Wie hast Du denn installiert?

Ich habe Python von der Seite (www.python.org/download) runtergeloaded.
Installiert habe ich nach der README-Datei, die in dem Tar-file enthalten ist.
Das heißt, ich habe in dem Ordner, wo ich Python installiert möchte aufgerufen:
1- make clean
2- make install
2- ./configure

Gruß,

Verfasst: Dienstag 15. August 2006, 12:31
von BlackJack
Also selbst übersetzt.

So wie's da steht ist's aber in der falschen Reihenfolge.

1. configure
2. make
3. make install (mit `root` Rechten falls systemweit installiert werden soll)

Sind die notwendigen Entwicklerdateien (Header) für TCL/Tk installiert? Wenn diese von `configure` nicht gefunden werden, dann kann auch kein `_tkinter` Modul gebaut werden.

Verfasst: Dienstag 15. August 2006, 14:03
von kkom
BlackJack hat geschrieben:Also selbst übersetzt.

So wie's da steht ist's aber in der falschen Reihenfolge.

1. configure
2. make
3. make install (mit `root` Rechten falls systemweit installiert werden soll)

Sind die notwendigen Entwicklerdateien (Header) für TCL/Tk installiert? Wenn diese von `configure` nicht gefunden werden, dann kann auch kein `_tkinter` Modul gebaut werden.
Header findet man unter Include. Ob die von TCL/Tk welche dabei sind, kann ich nicht nachvollziehen. Vielleicht könntest Du mir verraten wie ich es rausfinden kann.
Ich mache dieser Installation nicht mit root User-Id. Würde es nicht läufen?
Die Installation führe ich lokal auf der Maschine.

Was mache ich überhaupt falsch???

Gruß, Danke
kkom

Verfasst: Dienstag 15. August 2006, 14:48
von BlackJack
kkom hat geschrieben:Header findet man unter Include. Ob die von TCL/Tk welche dabei sind, kann ich nicht nachvollziehen. Vielleicht könntest Du mir verraten wie ich es rausfinden kann.
Das sollte `configure` herausfinden. Such in der Protokolldatei `config.log` mal nach `tcl.h`.
Ich mache dieser Installation nicht mit root User-Id. Würde es nicht läufen?
Dann musst Du dem `configure` wohl noch einen Pfad angeben wo später das installierte Programm landen soll. Zum Beispiel mit der Option ``--prefix=$HOME`` um es im Heimatverzeichnis unter `~/bin` zu installieren.

Verfasst: Mittwoch 16. August 2006, 09:05
von kkom
BlackJack hat geschrieben:
kkom hat geschrieben:Header findet man unter Include. Ob die von TCL/Tk welche dabei sind, kann ich nicht nachvollziehen. Vielleicht könntest Du mir verraten wie ich es rausfinden kann.
1-) Das sollte `configure` herausfinden. Such in der Protokolldatei `config.log` mal nach `tcl.h`.
Ich mache dieser Installation nicht mit root User-Id. Würde es nicht läufen?
2-) Dann musst Du dem `configure` wohl noch einen Pfad angeben wo später das installierte Programm landen soll. Zum Beispiel mit der Option ``--prefix=$HOME`` um es im Heimatverzeichnis unter `~/bin` zu installieren.
Zu 1-)
Den Header tcl.h habe ich im dem "config-log" gefunden, hier eine Abschnitte:

configure:18867: ./conftest
configure:18870: $? = 0
configure:18893: result: 4
configure:18902: checking for UCS-4 tcl
configure:18925: gcc -c -g -O2 conftest.c >&5
conftest.c:174: tcl.h: No such file or directory
conftest.c:176: #error "NOT UCS4_TCL"
configure:18931: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define _GNU_SOURCE 1

Zu 2-)
die Definition von der Prefix sieht so aus (Abschnitte aus der configure):
# The variables have the same names as the options, with
# dashes changed to underlines.
cache_file=/dev/null
exec_prefix=NONE
no_create=
no_recursion=
prefix=NONE

Weiter wird dieser Prefix verwendet (Abschnitte):

# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datadir='${prefix}/share'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'

libdir='${exec_prefix}/lib'
includedir='${prefix}/include'
oldincludedir='/usr/include'
infodir='${prefix}/info'
mandir='${prefix}/man'

Muss ich die Definition Prefix-Definition ändern? und Wie?

Danke voraus.

KKom

Verfasst: Mittwoch 16. August 2006, 09:46
von BlackJack
Zu 1: Das sieht so aus als wenn die `tcl.h` nicht installiert ist, oder an einem ungewöhnlichen Ort liegt.

Zu 2: Im Skript brauchst Du nichts ändern. `configure` mit der entsprechenden Option aufrufen habe ich doch schon erwähnt. Also konkret:

Code: Alles auswählen

$ ./configure --prefix=$HOME

Verfasst: Mittwoch 16. August 2006, 11:21
von kkom
BlackJack hat geschrieben:Zu 1: Das sieht so aus als wenn die `tcl.h` nicht installiert ist, oder an einem ungewöhnlichen Ort liegt.

Zu 2: Im Skript brauchst Du nichts ändern. `configure` mit der entsprechenden Option aufrufen habe ich doch schon erwähnt. Also konkret:

Code: Alles auswählen

$ ./configure --prefix=$HOME
Ich habe es probiert mit dem "./configure --prefix=$HOME". Aber das Problem besteht immer noch. Ich kann Tkinter nicht importieren!

1- Also habt Ihr neue Idee. Und wieso muss das so schwierig sein?
2- Gibt es anderes Python-Packet, das einfach installiert werden kann?

Danke für die Hilfe
KKoml

Verfasst: Mittwoch 16. August 2006, 12:48
von BlackJack
Natürlich löst das mit dem Prefix nicht Dein Problem mit Tkinter. Das sind zwei unterschiedliche Probleme.

Wenn Du selbst übersetzen möchtest, dann müssen eben alle Entwicklungsdateien für benötigte externe Bibliotheken auf dem System vorhanden sein. Wenn Du Tkinter haben möchtest, dann muss `tcl.h` da sein, damit das `_tkinter` Modul übersetzt werden kann.

Verfasst: Freitag 8. September 2006, 09:58
von sunsnake
auf 'ungewöhlichen' (welches unix ist gewöhlich?) systemen können manche header-file auch woanders sein (bei mir /usr/sfw/include/tcl.h).
dieses wissen nützt mir aber im moment auch nix denn es gibt bei configure keine standardmethode um (non-install)-include-pfade anzugeben ausser:

Code: Alles auswählen

CFLAGS="-I/usr/sfw/include"
.

das weiss aber configure nicht und deshalb wird tkinter nicht mitübersetzt. :!:


weiss jemand wie man das configure beibringt (vielleicht ohne das ganze script durchzuackern) :?:

best regards
tb :wink:

PS: zur bequemeren durchführung solcher build-orgien mache ich mir immer kleine mybuild-scripte:

mybuild.sh:

Code: Alles auswählen

#!/bin/bash
export CC=/opt/SUNWspro/bin/cc
export CXX=/opt/SUNWspro/bin/CC
export CFLAGS="-xtarget=native -I/usr/sfw/include"
./configure --prefix=/home/tb/applications/python-2.4.3 && gmake && gmake install