* Imagenes de instalación de las versiones estables para Mageia y OpenMandriva.

OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.

Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.

Problemas para compilar Python con Tkinter

Hola a todos nuevamente.

He estado buscando y las instrucciones que he encontrado no son suficientes. Quiero instalar Python 3.x en Mandriva 2010 pero desde el código fuente. Instalé el paquete libreadline6 y su paquete de desarrollo, también instalé libtcl-devel y libtkdevel, como decía en las instrucciones, pero aún así no puedo importar tkinter (es decir, al instalar no se encontró la librería).

Alguien podría decirme el procedimiento para hacerlo en Mandriva COMPILANDo (no quiero usar RPM). Tuve un problema similar en OpenSuSE pero lo solucioné instalando los paquetes de desarrollo para tk y tcl, pero aquí no funciona.

Gracias

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.


Gravatar de Annubis

# 101464 Pero...

¿Qué errores da?



Gravatar de SSun

# 101484 No da error

Es decir: lo que quiero es que me indiquen cómo habilitar tkinter con este método de instalación.

En realidad todo compila, pero cuando hago ./configure me dice que no encuentra los paquetes de tcl/tk en el sistema, y ellos están ahí, o por lo menos eso creo yo. rpmdrake dice que libtcl-devel y libtk-devel están instalados. Se  supone que ese es el requisito, y que el script de configuración localiza estos paquetes e instala tkinter, ero a mí no me da.

si te refieres a Python el error lo que saca al escribir import tkinter o from tkinter import * es el típico error de "no hay tknter por ningún lado":

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.1/tkinter/__init__.py", line 39, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter

espero que esté siendo claro.



Gravatar de laLora

# 101514 ./configure --help

Al compilar el paquete existe la opción de indicar expresamente la ubicación de las bibliotecas necesarias, en tu caso las tk.

Explora las opciones de ./configure con la opción --help.

Aunque en buena lid ya las deberias de tener enlazadas, ldconfig mediante,  si estan instaladas. Deberias explorar donde estan realmente.

Compilé Python-2.6.2 para mi LFS, y tuve que hacerlo dos veces, en la primera no había enlazado con las tk (Tk-8.5.6) y no se había compilado IDLE. A la segunda oportunidad se compiló todo bien.

Salud.

laLora



Gravatar de SSun

# 101521 pues no sé...

instalé con rpmdrake los siguientes paquetes:

libtcl8.6

libtcl-devel

libtk8.6

libtk-devel

las instrucciones en todas partes dicen que con eso basta, pero no está funcionando. 

Como todos sabemos, Mandriva 2010 viene con python 2.6.4 y con tkinter por defecto. Si tkinter me funciona en python 2.6.4, quiere decir que tcl y tk están bien instalados, la pregunta es porqué python 3.1 no los está encontrando??



Gravatar de DoctorBOFH

# 101539 Pasale al configure las flags

Pasale al configure las flags qeu necesita.Debes hacer algo asi

./configure --with-tk=/usr/lib/tk   --with_tcl=/usr/lib/tcl

Dentro del configure vienen todas las flags que le puedes pasar.

Saludos

Muy Suyo

Her DoctorBOFH



Gravatar de SSun

# 101555 SOLUCIONADO!!

A ver ya encontré la solución yo solito.

Aquí la pongo a modo de minitutorial para que la tengan y ojalá le sirva a alguien:

* En Mandriva 2010 tenemos instalado Python 2.6.4 por defecto; ese es mejor no tocarlo porque si lo cambiamos dañamos el sistema ya que muchas aplicaciones de Mandriva funcionan con Python, y si lo actualizamos o desinstalamos dejaran de funcionar (recuerden que python 3.x NO es compatible con las versiones 2.x, así que si todo Mandriva funciona con python 2.6.4 y lo cambiamos por el 3.x dañaremos el sistema).

* Sin embargo, python 3.x es una versión más actualizada, por lo que es más útil, pues las actualizaciones corrijen comportamientos y errores que python ha tenido toda la vida, sin mencionar también que es más util para quienes programamos aplicaciones que trabajen con cadenas de texto. Por lo tanto es conveniente tener ambas (una para el sistema y otra para trabajar nosotros).

NOTA: para usar interfaces gráficas de tk con python debemos instalar el paquete tkinter (si no está instalado por defecto). También debemos tener libtk8.6, libtcl8.6, libtk-devel y libtcl-devel.

* Para instalar python actualizado sin dañar el sistema hay dos caminos:

1. Abrimos el centro de control de Mandriva y buscamos los siguientes paquetes:

python3 (instala  libpython3.1-3.1.1-4mdv2010.0.i586 como dependencia)

tkinter3 (instala libpython3.1-3.1.1-4mdv2010.0.i586  y  python3-3.1.1-4mdv2010.0.i586 como dependencias)

se puede empezar por cualquiera: si elejimos primero a tkinter3, él pondrá a libpython3 y python3 automáticamente, y si elegimos primero a python3, deberemos poner luego a tkinter3.

NOTA: tkinter es para hacer interfaces gráficas sencillas usando la librería gráfica tk, no es indispensable que esté instalado en el sistema.

* La segunda forma es compilando el código fuente de python:

Basta con bajar tcl, tk y python de sus respectivas páginas. Luego instalamos tk y tcl como dicen las instrucciones (el típico configure, make, make install), a continuación MOVEMOS LAS CARPETAS Y ARCHIVOS DE TK Y TCL QUE ACABAMOS DE INSTALAR (USUALMENTE ESTÁN EN /USR/LOCAL/LIB) A /USR/LIB Y PROCEDEMOS A INSTALAR PYTHON HACIEND CONFIGURE MAKE Y MAKE ALTINSTALL PARA QUE NO SOBREESCRIBA AL VIEJO PYTHON.

NOTA: al hacer esto es importante bajar una versión de tcl y tk diferente a la que tiene el sistema. En Mandriva 2010 se trata de tcl/tk8.6 por lo que yo bajé tcl/tk8.5. Esto con el fin de evitar que se dañe el sistema al sobreescribir las carpetas

La parte en mayúsculas es el truco. Parece ser que por alguna razón los paquetes devel de mandriva no instalan todo lo que python necesita para correr tkinter. Al hacer esto el problema se soluciona y tkinter queda instalado. No es una solución muy ortodoxa, ero sí funciona. Ahora bien, estoy abierto a sugerencias y críticas si alguien tiene una mejor manera de hacer esto.



Gravatar de Kalvy

# 101577 Algunas cosillas

Antes de nada, celebro que hayas encontrado la solución, y más aún que la hayas compartido :)

Sobre el tema que nos ocupa, mencionarte algunas cosillas. No sé cómo van los instaladores de tk o tcl, pero imagino que su configure te permitirá escoger el prefijo de instalación (que por defecto es /usr/local). Así, si a la hora de hacer el configure de tk y tcl usas ./configure --prefix=/usr en lugar de ./configure a secas, al instalarlo lo hará directamente en /usr/ en lugar de en /usr/local y no tendrás que moverlo a mano.

Ahora bien... si por defecto se instala en /usr/local es por un buen motivo: no mezclar paquetes instalados a mano con paquetes instalados por el gestor de paquetes. Mi consejo sería que dejases tcl y tk en /usr/local e investigases cómo hacer que Python, tkinter o el que sea encuentre los archivos en cuestión.

Imagino que será simplemente dar con el archivo de configuración del sistema adecuado o incluso simplemente con una variable de entorno. Por ejemplo, si en $PATH no aparece el directorio /usr/local, los programas que están en /usr/local/bin no se pueden ejecutar sin poner su ruta completa. Puede que sea algo similar a eso, o poniendo los valores en algún archivo en /etc (pero ya digo que no lo sé).

Y lo que ya sería genial sería que, si puedes, averigües qué es lo que está mal en los paquetes de Mandriva para que puedas abrir un bug indicándoles dónde está el fallo y que puedan arreglarlo ;)



Gravatar de SSun

# 101581 Lo he intentado

Pues creo que para determinar si es un bug necesitaría la ayuda de más gente que tenga buen conociminto del tema y que pueda hacer pruebas.

yo he seguido, creo yo, al pie de la letra las instrucciones genéricas: instalar tk y tcl con el administrador de paquetes y compilar. Lo he hecho en otras distribuciones (SuSE y Mandriva 2008.1) y nunca hay problemas (excepto en Mandriva 2009.1, creo que es allí o en el 2009 que surge el problema).

En Mandriva 2010/2009.1, sin embargo, ocurre que intento e intento y no encuentro nada, he probado a decirle el lugar exacto donde están las librerías, incluso las he copiado y pegado manualmente (las que instalan los paquetes) en otro lugar y le digo al configure que las busque allí, pero nada.

Esas son las pruebas que he hecho yo. Si vamos a tratar de detectar el problema exacto, necesitaría más gente que haga sus propias pruebas (si son más expertas que yo, mejor) y luego comparamos resultados. Si efectivamente el error se reproduce en todos los casos, entonces será válido decir que se trata de un problema. Creo que los programadores podrían arrojar un poco más de luz sobre la stuación.

Por lo que a mí respecta, no he encontrado problema alguno con tener tcl/tk 8.6 y 8.5 juntos, así como tengo a python2.6 y 3.1 juntos. También me cersioré de dejar un archivo que explica qué carpetas se movieron de qué lugar y hacia qué otro, con el fin de evitar problemas derivados del olvido.

Por otro lado, tengo una máquina virtual instalada en Mandriva 2010 con otro Mandriva 2010, por lo que también podré hacer otras pruebas, si es necesario.



Gravatar de Kalvy

# 101586 Yo no soy de mucha ayuda me temo

Dado que mi experiencia con Python es muy reducida por el momento, y con tcl y tk es nula, no voy a servir de mucha ayuda.

Como el paquete de tkinter comentaste que te funcionaba y que tkinter3 era el que no, me dio por comparar ambos paquetes. Lo que encontré es que en el tema de dependencias parecen idénticos (salvo que uno depende de python y otro de python3, y tkinter3 no depende del paquete de la base de datos de Berkeley, pero dudo que influya en este asunto).

En lo que respecta a los archivos contenidos por cada paquete si encontré una diferencia: el paquete tkinter tiene un directorio llamado lib-tk con varios archivos, mientras que el paquete tkinter3 carece de dicho directorio, pero a cambio tiene un directorio llamado tkinter que parece llevar los archivos del primero renombrados.

Quizás investigando por ahí puedas encontrar algo. O por ejemplo comparando el error que da python2.6 si desinstalas tkinter con el mensaje que te da python3, buscando las cadenas ("If this fails your Python may not be configured for Tk" y la que dé con python2.6) por su respectivos módulos a ver si sacas algo en claro. O lo que se te ocurra vaya, ya te digo que yo de esto sé más bien nada ;)

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.