["Aporte"-Python] Haciendo funcionar Kivy en Python3.3

Iniciado por EzianGES, 23 Febrero 2014, 08:23 AM

0 Miembros y 1 Visitante están viendo este tema.

EzianGES

Por esas casualidades de la vida me topé con Kivy. Un par de videos y algunas críticas me convencieron de probarlo. Por un momento tuve la extraña sensación de "preocupación", de que este framework fuese un proyecto inestable mas, con grandes problemas. Para sorpresa mía, fue casi todo lo contrario: un proyecto robusto, una obra de ingeniería, pero muy joven, con una comunidad agradable, con muy buen nivel. Entonces me hice una serie de preguntas vitales: ¿Windows, Linux? ¿Python 2, Python 3? ¿3.2? ¿3.3? Para mi sorpresa... no solo Windows y Linux, si no también Android, iOs, y OSx. La documentación es regular. Para un programador experimentado, o un lector muy ávido de inglés, es buena.
Me dispuse a instalarlo bajo Windows en principio... y resultó ser algo mas complejo de lo que pensaba. Podría bajarme todo en uno, como si fuese "otra versión"de Python. Es decir, viene con un Python portable, y desde ese intérprete puedo usar Kivy. Para tener Kivy a disposición del intérprete ya instalado, es necesario -según llegué a leer- compilar a mano todo. Lo dejé para después. fue entonces cuando lo probé bajo Ubuntu. Acá es donde comenzaron los pequeños retrasos. La verdad no soy muy entendedor de Linux todavía, soy un usuario que lleva muy poco tiempo utilizándolo.
Quiero aclarar que en Ubuntu, contamos por defecto con Python2.7. Para acceder a Python 2.7 tipeamos cualquiera de las siguientes líneas en la terminal:

user@ubuntu:~$ python
user@ubuntu:~$ python2
user@ubuntu:-$ python2.7


Asumo -y es pura suposición- que al tipear "python", Linux ejecuta el intérprete predefinido, si tipeamos "python2", ejecuta la versión mas reciente de Python2x, y si tipeamos "python2.7" accedemos a la versión específica. (algún linuxero que corrija a este novato, por favor)
Tipeamos ahora lo siguiente, para saber si tenemos Python3.3 instalado:

user@ubuntu:-$ python3.3

Si no lo tenés instalado, Ubuntu -a la fecha- no cuenta con tal versión en los repositorios oficiales. Es por eso que debemos buscarlo en otro repositorio. En mi caso, DuckDuckGo-eando, me topé con que los repositorios DeadSnakes si cuentan, por tanto debemos agregar a la lista:

user@ubuntu:-$ sudo apt-get install python-software-properties
user@ubuntu:-$ sudo add-apt-repository ppa:fkrull/deadsnakes
user@ubuntu:-$ sudo apt-get update
user@ubuntu:-$ sudo apt-get install python3.3-dev


El -dev es para desarrolladores. Una vez que tenemos instalado Python3.3 correctamente, es tiempo de descargar Kivy, y Cython, que forma parte de los requerimientos. Descargamos Kivy desde la web oficial, descargamos el fichero (Kivy-1.8.0.tar.gz), el mismo quedará en /home/Descargas, en donde lo descompriremos, quedando entonces en /home/Descargas/Kivy-1.8.0.

Es tiempo de probar si todo funciona, lo cuál en mi caso no sucedió, pero mejor intentarlo.

user@ubuntu:-$ cd Descargas/Kivy-1.8.0
user@ubuntu:-/Descargas/Kivy-1.8.0$ python3.3 setup.py install


Si querés instalarlo para otra versión, solo cambia "python3.3" por la versión deseada ("python2.7", por ejemplo).

Si no hay ningún error, estás de suerte, y solo queda por importar Kivy:

user@ubuntu:-$ python3.3
>>>import kivy



Pero si te levantaste con el pie izquierdo, entonces vas a tener que hacer algunos pasos adicionales, seguramente habrá aparecido algún problema relacionado a Cython. Realmente no llegué a entender el 100% de lo que hice, pero bajé cython y cython3.
Cython lo conseguí en el siguiente enlace de Ubuntu: http://packages.ubuntu.com/raring/cython3
Lo bajé, lo extraje, y tuve que copiar cada fichero en la carpeta correspondiente dentro de /usr/bin.
Para esto, como usuario común, no podremos hacerlo, por lo que utilizaremos Nautilus:

user@ubuntu:-$ sudo nautilus

Una vez hecho esto, nos dirigimos a la carpeta de Cython3 (que en mi caso tiene el nombre cython3_0.17.4-0ubuntu1_amd64) y dentro está el siguiente sistema de directorios:

Citarcython3_0.17.4-0ubuntu1_amd64/
       ./usr
           ./bin
             cydbg    (fichero)
             cython3  (fichero)
           ./lib
              ./python3
                 ./Cython
           ./doc

Lo que tenemos que hacer ahora es copiar los ficheros cydbg y cython3 a /usr/bin en nuestro sistema de directorios, y la carpeta Cython a /usr/lib/python3.3.

Nuevamente intentamos instalar Kivy:

user@ubuntu:-/Descargas/Kivy-1.8.0$ python3.3 setup.py install

Si nuevamente tenemos un error, es necesario que Cython esté en el directorio de Kivy. Pero debemos bajar "otra versión" al parecer, desde http://cython.org/#download. Una vez descargado, extraemos el fichero, y dentro tendremos una carpeta llamada "Cython". La debemos copiar entera ADENTRO del directorio de Kivy. Y ahora si, abrimos la terminal:

user@ubuntu:-$ cd Descargas/Kivy-1.8.0
user@ubuntu:-/Descargas/Kivy-1.8.0$ python3.3 setup.py install


Y el problema debería estar solucionado, algo como lo siguiente debería aparecer al importar kivy:
Python 3.3.3 (default, Dec 27 2013, 19:27:19)
[GCC 4.6.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import kivy
[INFO   ] Kivy v1.8.0
>>>


Ahora bien, lo que hice yo fue copiar la carpeta "kivy" (dentro de Kivy-1.8.0) a la carpeta de python3.3 (./usr/lib/python3.3, necesitamos Nautilus). Esto es porque para importar Kivy, deberíamos estar dentro del directorio donde fue extraído. De esta manera, estemos donde estemos, podremos importar kivy.

Se que es una solución informal, infundamentada. Realmente fue un rebusque de novato que me di. Espero que le sirva a algún otro novato, y por favor, sepan disculpar las burradas dichas seguramente.
Les mando un abrazo.

PD: Voy a buscar la solución en Windows. Creo que voy a echar una mirada al registro, quizás pueda modificar algunas llaves, y así reemplazar el intérprete "normal" por el Kivy (que es el mismo, pero portable).
------------------------------------------
EDIT:
Encontré una manera mas limpia de instalar bajo Ubuntu, con el siguiente script:

Código (bash) [Seleccionar]

install_kivy_stable_py3_virtualenv.sh
Shell

#!/bin/sh
# Bootstrap Python3.3
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
# Install necessary system packages
sudo apt-get install -y build-essential mercurial git python3.3 python3.3-dev python-gst0.10 ffmpeg gstreamer0.10-plugins-good libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsmpeg-dev libsdl1.2-dev libportmidi-dev libswscale-dev libavformat-dev libavcodec-dev libgl1-mesa-dev libgles2-mesa-dev zlib1g-dev
# Bootstrap current setuptools
wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | sudo python3.3
# Bootstrap a current Python virtualenv
sudo apt-get remove --purge -y python-virtualenv python-pip
sudo easy_install-3.3 -U pip
sudo pip3.3 install -U virtualenv
# Create a vitualenv
sudo rm -rf venv
virtualenv-3.3 venv
# Install current version of cython into the virtualenv
sudo apt-get remove --purge -y cython
sudo pip uninstall --yes cython
venv/bin/pip install -U cython
# Install other PyGame and Kivy dependencies
venv/bin/pip install -U numpy
# Install pygame into the virtualenv
hg clone https://bitbucket.org/pygame/pygame
cd pygame
../venv/bin/python setup.py build
../venv/bin/python setup.py install
sudo ../venv/bin/python setup.py install
cd ..
sudo rm -rf pygame
# Install development version of Kivy into the virtualenv
venv/bin/pip install kivy
# Install a couple of dependencies for KivyCatalog
venv/bin/pip install --upgrade pygments docutils


Fuente: https://gist.github.com/brousch/8825629 & Ben Rousch jaja