python module dlls

python module dlls

Is there a way to make a python module load a dll in my application directory rather than the version that came with the python installation, without making changes to the python installation (which would then require I made an installer, and be careful I didn't break other apps for people by overwrting python modules and changing dll versions globaly...)?

Specifically I would like python to use my version of the sqlite3.dll, rather than the version that came with python (which is older and doesn't appear to have the fts3 module).

Retrieving python module path


Python: using a recursive algorithm as a generator
If you're talking about Python module DLLs, then simply modifying sys.path should be fine.

I need a really good reason to use Python
However, if you're talking about DLLs linked against those DLLs; i.e.

Virtualenv on Ubuntu with no site-packages
a libfoo.dll which a foo.pyd depends on, then you need to modify your PATH environment variable.

Translate SVN path to local file system path in Python
I wrote about doing this for PyGTK a while ago, but in your case I think it should be as simple as:.
How can I add post-install scripts to easy_install / setuptools / distutils?
import os os.environ['PATH'] = 'my-app-dir' + ';' + os.environ['PATH'] 
That will insert my-app-dir at the head of your Windows path, which I believe also controls the load-order for DLLs..
How to scp in python?
Keep in mind that you will need to do this before loading the DLL in question, i.e., before importing anything interesting..
Truncate a string without ending in the middle of a word
sqlite3 may be a bit of a special case, though, since it is distributed with Python; it's obviously kind of tricky to test this quickly, so I haven't checked sqlite3.dll specifically..


Ok it terns out python always loads the dll in the same directory as the pyd file, regardless of what the python and os paths are set to.. So I needed to copy the _sqlite3.pyd from python/v2.5/DLLS to my apps directory where the new sqlite3.dll is, making it load my new dll, rather than the one that comes with python (since the pyd files seem to follow the PYTHONPATH, even though the actaul dlls themselves dont)..


If your version of sqlite is in sys.path before the systems version it will use that.

So you can either put it in the current directory or change the PYTHONPATH environment variable to do that..

94 out of 100 based on 84 user ratings 334 reviews