This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author jonathan-lp
Recipients jonathan-lp
Date 2018-06-30.10:07:42
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1530353263.14.0.56676864532.issue34011@psf.upfronthosting.co.za>
In-reply-to
Content
I don't know if this is a bug or an odd design decision or just something that hasn't been considered or maybe I'm missing something.

On Windows and I create a venv with Python 3.6.3:

> python -m venv venv

This creates a subdirectory called /venv. Inside this, there's:
./venv/Scripts/sqlite3.dll

This is the sqlite library - except it's not, because Python isn't using this file. If I upgrade this library by replacing it with a newer sqlite3.dll version, Python keep using the original version of the library. Turns out, Python is by default reading the DLL in the root Python install:

c:\Python36\DLLs\sqlite3.dll

Now, I can change that file and sure enough my VENV (*all* VENVs) then get the newer version of SQLite, or I can delete that file and the VENV's will all use their local versions, or I can possibly play with some sys.path to try and get the VENV version loaded first.

But this raises a few questions:
1) This seems like a rather odd default - copying a file that is never used by default.
2) Surely either the correct option is to use the VENV version by default?
3) Otherwise, what's the point in copying across this DLL file into the VENV by default?
History
Date User Action Args
2018-06-30 10:07:43jonathan-lpsetrecipients: + jonathan-lp
2018-06-30 10:07:43jonathan-lpsetmessageid: <1530353263.14.0.56676864532.issue34011@psf.upfronthosting.co.za>
2018-06-30 10:07:43jonathan-lplinkissue34011 messages
2018-06-30 10:07:42jonathan-lpcreate