Hola, Para una aplicación que planeo correr en dos tipos de SO (Win32 y GNU/Linux) necesito utilizar diferentes librerías para interfaces gráficas. Por cuestiones de Accesibilidad, bajo Linux debería usar GTK+3 y en Windows WxPython. MI pregunta es si puedo hacer esto con un mismo código fuente, es decir, si en el mismo programa podría hacer que se tomara una u otra librería sin afectar al rendimiento del mismo.
En un principio pensé en hacer algo así: Crear un módulo llamado GUI, que dentro contenga una carpeta por cada SO, o sea dos directorios, win32 y linux. Poner el __init__.py en cada uno de esos directorios, e importar todo lo que necesito que puedan importar otras partes de la aplicación. Luego, fuera de esos directorios, en el directorio GUI, hacer el __init__.py, con algo como esto: # -*- coding: utf-8 -*- import sys if sys.platform == "win32": from win32 import * elif sys.platform == "linux2": from linux import * Y así ir haciendo con cada SO que necesite. Las preguntas: 1. ¿Hay alguna forma mejor de hacer esto? Solo se necesitarían librerías gráficas diferentes, todo lo demás funcionará bien en ambas plataformas. 2. En el archivo que ejecuta la aplicación, se inicializa el MainLoop de Wx para Windows o el GTK si se usa en Linux. Uso if's como en los módulos para determinar la plataforma. Si el import de wx o GTK está dentro del bloque de código del IF, supongo que no se importará si la condición no es cierta. ¿Es mejor separar el código y hacer un archivo para inicializar la app en Windows y otro para Linux? 3. En el setup.py, por ahora no he encontrado forma de hacer que como dependencia se tenga GTK o WX si se tiene según qué plataforma, debería volver a probar con IF? o hay instrucciones en setuptools para usar según qué herramientas para diferentes OS. Muchas gracias por la respuesta, saludos! -- Cordialmente: Manuel Cortéz Blog: http://manuel.a12x.net V Semestre Universidad de Monterrey (Prepa UDEM) Cita: “Free software, free society” Manuel Cortéz “La libertad no es poder elegir entre unas pocas opciones impuestas, sino tener el control de tu propia vida. La libertad no es elegir quien será tu amo, es no tener amo.” Richard Stallman
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/