Hola Kiko y Alberto:

El problema es que el pysqlite va integrado en el python 2.7

He creado e entorno virtual con virtualenv y la salida del código es la misma
sys.version_info(major=2, minor=7, micro=9, releaselevel='final', serial=0)
pySQLite:  2.6.0
SQLite:  3.8.7.1
registros 833
fin

Como el código importaba wx y usar wx en entornos virtuales en complicado, he hecho un código que ejecutase la consulta en la base de datos, con los mismos parámetros de conexión.

El código es este:
--------------------------------------------------
import sys
import sqlite3 as sqlite

print sys.version_info
print "pySQLite: ", sqlite.version
print "SQLite: ", sqlite.sqlite_version
path = "basededatos.sqlite"
conexion = sqlite.connect(path)
cursor = conexion.cursor()
cursor.execute("PRAGMA cache_size=200000")
cursor.execute('PRAGMA encoding="UTF-8";')
sql="""SELECT...."""
cursor.execute(sql)
rows = cursor.fetchall()
print "registros", len(rows)
cursor.close()
conexion.close()
print "fin"
----------------------------------------
el resultado ejecutándolo desde el entornovirtual es el mimo:
sys.version_info(major=2, minor=7, micro=9, releaselevel='final', serial=0)
pySQLite:  2.6.0
SQLite:  3.8.7.1
registros 833
fin

---------------
me llama la atención que estando instalado el pysqlite 2.6.3 siga usando el 2.6.0, como haría para usar la nueva versión en el entorno virtual?

En todo caso encontré la solución (o el problema), al hacerlo se me ocurrió comentar la línea:
cursor.execute("PRAGMA cache_size=200000")

y el recuento pasó a ser: 547 el correcto!!!

Despues descomenté y añadi un cero al cache_size, quedando así:

cursor.execute("PRAGMA cache_size=2000000")
y tambien funciona si quito ceros, por ejemplo
cursor.execute("PRAGMA cache_size=200")
Mis conocimientos no son suficientes como para comprender esto.

En definitiva, me quedo con dos dudas
Una es como hacer para usar una versión distinta del pysqlite de la instalada con el python
La otra es este comportamiento del cache_size.

En todo caso, muchisimas gracias por vuestra ayuda.


Dani

On 14/05/15 16:01, Alberto Perez wrote:
seguro que ya lo probaste, pero igual lo sugiero: reinstala.
sudo apt-get remove (lo que queres borrar) y luego sudo apt-get install (lo que queres instalar)

2015-05-14 9:56 GMT-03:00 Kiko <kikocorre...@gmail.com <mailto:kikocorre...@gmail.com>>:



    El 14 de mayo de 2015, 14:42, Dani <d...@damufo.com
    <mailto:d...@damufo.com>> escribió:

        Hola:

        Gracias por la ayuda

        Si, para el error instalando la versión de pysqlite 2.6.3 era
        ese el error.
        Instalé el
        /sqlite3-dev
        y ya instaló e pysqlite versión 2.6.3

        El caso es que al ejecutar el código
        import sqlite3 as sqlite
        print "pySQLite: ", sqlite.version
        print "SQLite: ", sqlite.sqlite_version

        sique indicando:
        pySQLite:  2.6.0
        SQLite:  3.8.7.1

        incluso borré la carpeta
        /usr/local/lib/python2.7/dist-packages/pysqlite2

        y sigue usando la misma versión.

        y sigue pasando lo mismo

        alguna idea?
        /


    Pues sin saber muy bien como tienes las cosas montadas en tu equipo.

    Por qué no montas un virtualenv e instalas ahí lo que necesitas
    para descartar temas de versiones?
    https://pypi.python.org/pypi/virtualenv


        /
        Gracias



        /

        Dani

        On 14/05/15 14:31, Kiko wrote:


        El 14 de mayo de 2015, 14:13, Dani <d...@damufo.com
        <mailto:d...@damufo.com>> escribió:

            Hola:

            SO debian Jessie
            Python 2.7.9
            pySQLite:  2.6.0
            SQLite:  3.8.7.1

            Estoy tratando de ejecutar una consulta que lleva un left
            join.
            Cuando la realizo desde python aparecen registros de más
            el count es 833
            Sin embargo si hago la misma consulta desde la consola
            con sqlite3 o desde la extensión de firefox sqlitemanager
            el resultado es 547 (que es lo correcto).


        Qué código python estás usando


            Recientemente actualicé de debian wheezy a jessie y me da
            que puede ser algo de la versión del pysqlite

            Alguien sabe que puede ser?

            hay forma de cambiar la versión del pysqlite para ver si
            es eso
            Traté de actualizar el pysqlite
            $ sudo pip install pysqlite

            con pero sale el error: error: command
            'x86_64-linux-gnu-gcc' failed with exit status 1


        Puedes poner el error completo?

            Gracias


        prueba lo siguiente:
        /sudo apt-get install python-dev sqlite3-dev /
        (lo digo de cabeza y puede que no sea exactamente así, estoy
        en un windows ahora)
        /sudo pip install --upgrade pysqlite/



        _______________________________________________
        Python-es mailing list
        Python-es@python.org  <mailto:Python-es@python.org>
        https://mail.python.org/mailman/listinfo/python-es
        FAQ:http://python-es-faq.wikidot.com/


        _______________________________________________
        Python-es mailing list
        Python-es@python.org <mailto:Python-es@python.org>
        https://mail.python.org/mailman/listinfo/python-es
        FAQ: http://python-es-faq.wikidot.com/



    _______________________________________________
    Python-es mailing list
    Python-es@python.org <mailto:Python-es@python.org>
    https://mail.python.org/mailman/listinfo/python-es
    FAQ: http://python-es-faq.wikidot.com/




_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a