[pyar] SQLite en LibreOffice...

Mauricio Baeza listas en mauriciobaeza.net
Mie Mayo 18 15:32:36 ART 2016


On 05/18/2016 03:34 AM, Marcos Dione wrote:
> On Tue, May 17, 2016 at 05:42:04PM -0500, Mauricio Baeza wrote:
>> Por una razón que no logro explicarme, los desarrolladores de LibreOffice
>> decidieron quitar las librerias para SQLite en el core de Python que incluye
>> LibreOffice para Windows.
>>
>> Mi extensión (100% python) usa SQLite para la base de datos, despues de
>> algunas pruebas, pude integrarlas y dejarlas estable en LibreOffice 4.1.
>> Ahora, que los usuarios quieren usar LibreOffice 5.1, no importa más las
>> librerias integradas para SQLite.
>
>     no importa más o no incluye más? supongo que lo que te pasa cuando hacés:
>
> import sqlite
>
>     te dá un ImportError, no? o cuál es el problema?


LibreOffice "nunca" ha incluido las librerias para SQLite dentro del 
python que incluye en Windows... es un python capado.

El error es: ImportError: DLL load failed:
pero retiero, no es problema de las librerías


>
>> Se que no es un problema de estas
>> librerías, por que las copio del core de Python y por que instalado el
>> mismo, como lo menciono más abajo, todo funciona correctamente.
>
>     'por que instalado el mismo'? No entiendo la redacción (además de que
> 'porque' va todo junto en una afirmación).


Si tengo "solo" LibreOffice, con su python "interno", un simple import 
sqlite3 no funciona, si instalo el Python estandar "fuera" de 
LibreOffice, funciona correctamente, ojo, el import sqlite3 y sus 
librerias respectivas están "dentro" de LibreOffice, copiadas de las que 
instala el Python estandar.


>
>> En LibreOfice 4.1 se tenía lo siguiente:
>>
>> Sistema: Windows-XP-5.1.2600-SP3
>> LibreOffice 4.1
>> Python: 3.3.3 (default, Apr 23 2014, 02:10:35) [MSC v.1600 32 bit (Intel)]
>>
>> C:\Archivos de programa\LibreOffice 4\program\python-core-3.3.3\lib
>> C:\Archivos de programa\LibreOffice 4\program\python-core-3.3.3\lib\site-packages
>> C:\Archivos de programa\LibreOffice 4\program
>> C:\Archivos de programa\LibreOffice 4\program\python33.zip
>> C:\Archivos de programa\LibreOffice 4\program\python-core-3.3.3\DLLs
>> C:\Archivos de programa\LibreOffice 4\program\python-core-3.3.3
>>
>> Ahora en LibreOffice 5.1 se tiene:
>>
>> Sistema: Windows-XP-5.1.2600-SP3
>> LibreOffice 5.0
>> Python: 3.3.5 (default, May  5 2016, 07:37:41) [MSC v.1800 32 bit (Intel)]
>>
>> C:\Archivos de programa\LibreOffice 5\program\python-core-3.3.3\lib
>> C:\Archivos de programa\LibreOffice 5\program\python-core-3.3.3\lib\site-packages
>> C:\Archivos de programa\LibreOffice 5\program
>> C:\Archivos de programa\LibreOffice 5\program\python33.zip
>> C:\Archivos de programa\LibreOffice 5\program\python-core-3.3.3\DLLs
>> C:\Archivos de programa\LibreOffice 5\program\python-core-3.3.3
>>
>> La única diferencia que veo es la versión de Python, 3.3.3 contra 3.3.5
>
>     Los paths ahí arriba aún mencionan 3.3.3, no entiendo... Cómo
> obtuviste la línea con la versión de Python?


un simple sys.version
pero ejecutado desde el python interno de LibreOffice, los paths, son lo 
que devuelve sys.path, así es como lo tiene LibreOffice


>> La única forma que logro hacer funcionar de nuevo el sistema, es instalando
>> Python 3.3.5 en el sistema. Tengo el mismo comportamiento en cualquier
>> versión de Windows.
>>
>> El sentido común me dice que al instalar Python modifica algo en el registro
>> de Windows o instala alguna librería compartida.
>
>     Lo que debe faltar es el equivalente de esto:
>
> /usr/lib/python3.5/sqlite3
> /usr/lib/python3.5/lib-dynload/_sqlite3.cpython-35m-x86_64-linux-gnu.so
> /usr/lib/python3.5/sqlite3/__init__.py
> /usr/lib/python3.5/sqlite3/dbapi2.py
> /usr/lib/python3.5/sqlite3/dump.py
>
>     Fijate si los encontrás en el Python que viene con LOffice y en el
> Python que instalás vos a mano.


Ya hice todas estas pruebas.


>
>> 1.- ¿Puedo saber de algún modo que modifica la instalación de Python para
>> que funcionen las librerias SQLite en mi extensión?
>
>     Bienvenido a Windows, donde todo es un misterio. Supongo que debe
> setear alguna variable de entorno que el LibreOffice use.


Revisé las variables de entorno despues de instalar Python, pero incluso 
sin agregar python.exe a PATH funciona, en cuanto desinstalo el Python 
estandar, deja de funcionar.


>> 2.- ¿Como puedo agregar al core de LibreOffice soporte para SQLite
>> directamente? para esto e tratado de reproducir la ubicación de los archivos
>> en el core de Python instalado en el core de LibreOffice sin exito. Es
>> decir, mientras esta instalado Python funcionan, pero al desintalar Python
>> dejan de funcionar dentro de LibreOffice
>
>     Eso se lo vas a tener que preguntar a la gente de LibreOffice. Daría
> la impresión que o en algún momento tomaron una desición y quitaron ese
> soporte, o hay un bug en el instalador, o hay otro problema en tu setup;
> por ejemplo, la discrepancia 3.3.3/3.3.5 que pusiste allá arriba.


Lo he preguntado, nadie me sabe decir por que razón quitan librerías 
estandar del core, no quiero pensarlo, pero me parece más un capricho de 
alguien. No creo que sea un problema del setup, todo los demas funciona 
correctamente.


Gracias por tus respuestas.

Saludos

-- 
__________________________________________________
Todo lo que no podemos dar nos posee... André Gide
Apoya nuestros proyectos: http://universolibre.org/hacemos/


Más información sobre la lista de distribución pyar