New submission from Jonathan <bugrepo...@lightpear.com>:

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?

----------
messages: 320765
nosy: jonathan-lp
priority: normal
severity: normal
status: open
title: Default preference not given to venv DLL's
versions: Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue34011>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to