Tkinter Installation. _Tkinter wird nicht gefunden!

Fragen zu Tkinter.
Antworten
kkom
User
Beiträge: 7
Registriert: Montag 14. August 2006, 15:32

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
BlackJack

Wie hast Du denn installiert?
kkom
User
Beiträge: 7
Registriert: Montag 14. August 2006, 15:32

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ß,
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.
kkom
User
Beiträge: 7
Registriert: Montag 14. August 2006, 15:32

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
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.
kkom
User
Beiträge: 7
Registriert: Montag 14. August 2006, 15:32

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
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
kkom
User
Beiträge: 7
Registriert: Montag 14. August 2006, 15:32

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
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.
sunsnake
User
Beiträge: 1
Registriert: Freitag 8. September 2006, 09:45

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
some call the ambulance - theres gonna be an accident
Antworten