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.