Try to find a way to import the dll but it always fails on the 
load_extension

def load_spatialite(dbapi_conn, connection_record):
    dbapi_conn.enable_load_extension(True)
    dbapi_conn.load_extension('C:\\Scripts\\*mod_spatialite*.dll')


Le mardi 9 juillet 2019 17:01:33 UTC-4, Michael Lane a écrit :
>
> I would like to use spatialite <https://pypi.org/project/spatialite/> in 
> my project but I don't find the right way to do that. Does anybody have 
> already done that and can give me an example?
>
> my environment:
>
> Windows 10:
> Python version: 3.6.8
> Local database: sqlite (for spatialite)
> Remote database: postgresql
>
> I find a lot of exemples where spatialite is set in the module parameter 
> for the engine <https://docs.sqlalchemy.org/en/13/core/engines.html> in 
> create_engine using lib like libsqlite3, mod_spatialite, pysqlite3 in my 
> case I use spatialiteinstall with pip (package define in setup.py)
>
> My problem is then I don't have the control of create_engine, in the 
> engine comming from settings in ini so I think that I have to pass the 
> setting by the ini file but I did'nt get it. I didn't find any good example 
> of code using same combination environment as mine (windows, pyramid, 
> spatialite).
>
>
> There are the settings of ini file:
>
>
> pyramid.reload_templates = true
> pyramid.reload_assets = true
> pyramid.debug_authorization = true
> pyramid.debug_notfound = false
> pyramid.debug_routematch = true
> pyramid.default_locale_name = en
> pyramid.includes =
>     pyramid_debugtoolbar
>     pyramid_tm
>
> sqlalchemy.url = sqlite:///%(here)s/risc.sqlite
>
>
> Code where the engine is create:
>
>
> from sqlalchemy import engine_from_configfrom sqlalchemy.orm import 
> sessionmakerfrom sqlalchemy.orm import configure_mappersimport zope.sqlalchemy
>
> # run configure_mappers after defining all of the models to ensure# all 
> relationships can be setup
> configure_mappers()
>
> def get_engine(settings, prefix='sqlalchemy.'):
>     return engine_from_config(settings, prefix)
>
> def get_session_factory(engine):
>     factory = sessionmaker()
>     factory.configure(bind=engine)
>     return factory
>
> def get_tm_session(session_factory, transaction_manager):
>     dbsession = session_factory()
>     zope.sqlalchemy.register(dbsession, 
> transaction_manager=transaction_manager)
>     return dbsession
>
> def includeme(config):
>     settings = config.get_settings()
>     settings['tm.manager_hook'] = 'pyramid_tm.explicit_manager'
>
>     # use pyramid_tm to hook the transaction lifecycle to the request
>     config.include('pyramid_tm')
>
>     # use pyramid_retry to retry a request when transient exceptions occur
>     config.include('pyramid_retry')
>
>     session_factory = get_session_factory(get_engine(settings))
>     config.registry['dbsession_factory'] = session_factory
>
>     # make request.dbsession available for use in Pyramid
>     config.add_request_method(
>         # r.tm is the transaction manager used by pyramid_tm
>     lambda r: get_tm_session(session_factory, r.tm),
>     'dbsession',
>     reify=True)
>
>
> And the settings module of setup.py
>
>
> requires = [
>     'bcrypt',
>     'docutils',
>     'plaster_pastedeploy',
>     'pyramid',
>     'pyramid_debugtoolbar',
>     'pyramid_retry',
>     'pyramid_tm',
>     'sqlalchemy',
>     'transaction',
>     'zope.sqlalchemy',
>     'waitress',
>     'sphinx',
>     'flake8',
>     'pyLint',
>     'pg8000',
>     'geoalchemy2',
>     'spatialite']
>
>
> I'm pretty sure than I miss a little something, but I'm not able to find 
> it my way. I little hint will be appreciated on this one.
>
>
> Thanks
>

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pylons-discuss/e6566b97-e5d6-47c6-8108-bd11462e0c9b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to