He intentado pasar parte del código a PHP, y durante una semanita he estado dándole vueltas, hasta que he descubierto que PHP también consume memoria en cantidades industriales, y que para tratar un fichero de texto de 10Mb, y meterlo en un Excel con una librería el problema de la memoria se disparaba.
Así que vamos a probar con Python. Es sencillo de aprender. No me acaba de gustar que no sea un lenguaje muy tipado, eso de que puedas meter cualquier cosa en una caja, sin decir, qué forma ha de tener la caja, no me acaba de cuadrar. Pero está muy bien. También he aprovechado para programar en Mac con el Vi. Me siento casi como un informático...!
Cuando después de un par o tres de días, mi proceso ya "parsea" convenientemente el fichero, llega el momento de guardar los datos de manera persistente. Y entran entonces en juego tres opciones: Excel, que será el producto final; MySQL, que es como lo tengo actualmente implementado en la versión Java; y MongoDB, que es algo nuevo para mi y al cual le veo grandes posibilidades.
Con el MySQL es con el que he tenido más problemas a la hora de instalarlo. He localizado al final cómo hacerlo:
Primero, instalo la librería con easy_install:
sudo easy_install MySQL-python
Pruebo que todo esté bien:
MacBookPro-de-JoseLuis:Downloads jherranzm$ python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
Traceback (most recent call last):
File "
File "build/bdist.macosx-10.7-intel/egg/MySQLdb/__init__.py", line 19, in
File "build/bdist.macosx-10.7-intel/egg/_mysql.py", line 7, in
File "build/bdist.macosx-10.7-intel/egg/_mysql.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/jherranzm/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
Referenced from: /Users/jherranzm/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so
Reason: image not found
Para encontrar dónde está realmente la librería que falla utilizo el comando locate:
locate libmysqlclient.18.dylib
El sistema espera encontrar la librería en /usr/lib. Para solucionarlo hay que crear un enlace simbólico de la librería que queremos a la posición donde se ubicará el enlace:
sudo ln -s /usr/local/mysql-5.5.23-osx10.6-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Con estes cambio, vuelvo a probar, y voilà, funciona (ya no da el error) :
MacBookPro-de-JoseLuis:Downloads jherranzm$ python Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> quit()
Ahora me toca seguir con el programa...
No hay comentarios:
Publicar un comentario