Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <mailman.22.1745016497.3008.python-list@python.org>
Deutsch   English   Français   Italiano  
<mailman.22.1745016497.3008.python-list@python.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!fu-berlin.de!uni-berlin.de!not-for-mail
From: Thomas Passin <list1@tompassin.net>
Newsgroups: comp.lang.python
Subject: Re: Pip installs to unexpected place
Date: Fri, 18 Apr 2025 13:08:36 -0400
Lines: 41
Message-ID: <mailman.22.1745016497.3008.python-list@python.org>
References: <CAN06=CxPNLHtr_sdgphR2jrN1V+WbB8wZDJdbvfEDb-MYtmPHA@mail.gmail.com>
 <bbe32f47-13d2-459c-af22-4e0e37834091@tompassin.net>
 <4ZcdYR5WnWznV1q@mail.python.org>
 <cc1c6cf5-f8b9-4528-b6b0-110499b88162@wichmann.us>
 <4Zd3YM00SYznVKQ@mail.python.org>
 <CAJQBtgmfgC5aQy_7RXwHDbsxaf1UWYY0=FNsgPPR2UzzuKfTTA@mail.gmail.com>
 <4ZdrJv0v0LznV1q@mail.python.org>
 <6d1ac10c-80c0-484b-a7e7-e1966cea1b5d@wichmann.us>
 <mailman.19.1744926071.3008.python-list@python.org>
 <m6dnueFg8f0U1@mid.individual.net> <20250418153848.w2hmxpegl3uwii3w@hjp.at>
 <e1cce2f7-e59b-42bb-95ee-602f241f545b@tompassin.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Trace: news.uni-berlin.de id2h4Cc7DflFgSudImp1VgrueytuQ1EZyK7Bm1L+tbbg==
Cancel-Lock: sha1:HzfgteoK9nK361ebTI2jsvNz4y0= sha256:D0nmKCsFMMCLTupPiW/koEuIS97WdxRaXz+uCykRvuQ=
Return-Path: <list1@tompassin.net>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
 reason="2048-bit key; unprotected key"
 header.d=tompassin.net header.i=@tompassin.net header.b=kfCzBH2r;
 dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status: OK 0.010
X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; 'looks': 0.02; 'scripts.':
 0.07; 'python.': 0.08; 'example.': 0.09; 'later,': 0.09;
 'mechanism': 0.09; "shouldn't": 0.09; 'directories': 0.16;
 'directory.': 0.16; 'greg': 0.16; 'holzer': 0.16; 'mats': 0.16;
 'received:10.0.0': 0.16; 'received:64.90': 0.16;
 'received:64.90.62': 0.16; 'received:64.90.62.162': 0.16;
 'received:dreamhost.com': 0.16; 'root.': 0.16; 'script,': 0.16;
 'wichmann': 0.16; 'wrote:': 0.16; 'python': 0.16; 'uses': 0.19;
 'bug': 0.19; 'to:addr:python-list': 0.20; 'version': 0.23;
 'install': 0.23; 'installed': 0.23; 'seems': 0.26; "isn't": 0.27;
 'local': 0.27; '>>>': 0.28; 'wrong': 0.28; 'think': 0.29; 'header
 :User-Agent:1': 0.30; 'packages': 0.31; 'am,': 0.31; 'program':
 0.32; "doesn't": 0.32; '(this': 0.32; 'disabled': 0.32; 'python-
 list': 0.32; 'received:10.0': 0.32; 'received:mailchannels.net':
 0.32; 'received:relay.mailchannels.net': 0.32; 'but': 0.32;
 'path': 0.33; 'header:In-Reply-To:1': 0.34; 'package': 0.34;
 'this.': 0.35; 'really': 0.36; 'change': 0.36; "it's": 0.37;
 'way': 0.38; 'use': 0.39; 'received:100': 0.39; 'place.': 0.40;
 'try': 0.40; 'should': 0.40; 'here.': 0.61; "there's": 0.61;
 'great': 0.62; 'load': 0.62; 'come': 0.62; 'between': 0.63;
 'look': 0.65; 'header:Received:6': 0.67; 'received:64': 0.68;
 'site': 0.68; 'manager': 0.68; 'launches': 0.69; 'global': 0.73;
 'easy': 0.74; 'editing': 0.84; 'completely.': 0.84; 'location.':
 0.84; 'stretch.': 0.84; 'forces': 0.91
X-Sender-Id: dreamhost|x-authsender|tpassin@tompassin.net
ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1744996117; a=rsa-sha256;
 cv=none;
 b=CBKkP1JkSyVtxRk6Y+1bDLeysJ8OZI1r0vqT3nTkuVEexjb55NlthcBK5RjnfaBs940Tln
 cEf4huLEixT/7ieNI/STiKtieKArgd84OSGE0toUNeoQO4DP7LQKbQGSigq+eQvFW0O/Sc
 +LWNye+i3W0ArEjNd0RJNl2lrrnt5vBFtHmwKe0x1GAgua+4w16E/Gpp0/22i2c0EPuQ2E
 2EsVeVgUx4sLJlrI4qpVFrx0c4QstnLeAcGaueZUATo4uIDteWXfTOdlh+eYsLzzJYwHk0
 RYbwV3GkMMV8gIxf/zlDojmU65oxX0HkiVgeZVsjGEY+T9hh/N0yfhGkR5z3LQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mailchannels.net; s=arc-2022; t=1744996117;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding:
 in-reply-to:in-reply-to:references:references:dkim-signature;
 bh=CIV9tAYYga9pqcEYSYFBaGQpS17BP0Wh2yQq+thFh6E=;
 b=Gfvo2bwsjRw12smR86TMUChhi19xM3R6nkxlZPkHtL2mpsVRVeEAX0gerg/MlDGUOLrylz
 f+WiR5fLo+U6tqxMrVQFjfYEkdhI6ckTePCdQrgB0eT44DD7WwS+CBmFDvZFsydsFxHCXd
 jexF35VYNf6HIXKW5HnAEMP1eGq66s+OVbg8rrtxEeK73OAZERgv7grFgrkzK2NFNzPVTG
 QRzCG/MgZ+ffV+CrT9vNAZU+ZXnYUKVnwj5pw+Q1M1MD1Nqur0VjAMGgow8mx1b/oK3Ikg
 YJccl6JO8pR1lExx2ypXS6IFTR3WM0WWXYDm7HYlDwp4jqCNeggFbxBoFmEuuQ==
ARC-Authentication-Results: i=1; rspamd-7bd9ff6c58-ks55c;
 auth=pass smtp.auth=dreamhost smtp.mailfrom=list1@tompassin.net
X-Sender-Id: dreamhost|x-authsender|tpassin@tompassin.net
X-MC-Relay: Good
X-MailChannels-SenderId: dreamhost|x-authsender|tpassin@tompassin.net
X-MailChannels-Auth-Id: dreamhost
X-Stretch-Fearful: 6ca7843013967878_1744996118166_2477706385
X-MC-Loop-Signature: 1744996118166:2742958087
X-MC-Ingress-Time: 1744996118166
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tompassin.net;
 s=dreamhost; t=1744996117;
 bh=CIV9tAYYga9pqcEYSYFBaGQpS17BP0Wh2yQq+thFh6E=;
 h=Date:Subject:To:From:Content-Type:Content-Transfer-Encoding;
 b=kfCzBH2rE4qJkI74+M9kHOTmokL8TYTIcGFUy3Uq08DQ7+KdielLCqgX8SgGXFW+q
 S7kQ3O7Wm33o5G9V2QcWi0P77ZU97RK6CBSG533BTfmh70TiHeGfYLmNmUeHdbHF66
 Clq1WXJYtvUBbJ6RNoW/Jo8fjxPXdiv5jpC/FIB+n9VfUofOp7W6nN5dwELcEG5Oc/
 OPpUiBZgJfYtLDo0kXuH+TL0JCA+/j4bzj5b48VfeFe4qDHy0568LDgfTBwyRsiqHI
 oRlSG+D3LkLTVOXuOneOIOOYLAyedtBwZrAZLXwm8nNgPB1gso36UH+UmIjeHd9tdP
 TMKwD1neMNPTQ==
User-Agent: Mozilla Thunderbird
Content-Language: en-US
In-Reply-To: <20250418153848.w2hmxpegl3uwii3w@hjp.at>
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: General discussion list for the Python programming language
 <python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
 <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
 <mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <e1cce2f7-e59b-42bb-95ee-602f241f545b@tompassin.net>
X-Mailman-Original-References: <CAN06=CxPNLHtr_sdgphR2jrN1V+WbB8wZDJdbvfEDb-MYtmPHA@mail.gmail.com>
 <bbe32f47-13d2-459c-af22-4e0e37834091@tompassin.net>
 <4ZcdYR5WnWznV1q@mail.python.org>
 <cc1c6cf5-f8b9-4528-b6b0-110499b88162@wichmann.us>
 <4Zd3YM00SYznVKQ@mail.python.org>
 <CAJQBtgmfgC5aQy_7RXwHDbsxaf1UWYY0=FNsgPPR2UzzuKfTTA@mail.gmail.com>
 <4ZdrJv0v0LznV1q@mail.python.org>
 <6d1ac10c-80c0-484b-a7e7-e1966cea1b5d@wichmann.us>
 <mailman.19.1744926071.3008.python-list@python.org>
 <m6dnueFg8f0U1@mid.individual.net> <20250418153848.w2hmxpegl3uwii3w@hjp.at>

On 4/18/2025 11:38 AM, Peter J. Holzer via Python-list wrote:
> On 2025-04-18 13:24:28 +1200, Greg Ewing via Python-list wrote:
>> On 18/04/25 9:41 am, Mats Wichmann wrote:
>>> There's just not a really great answer to this.
>>
>> Seems to me a system-installed application shouldn't be looking in the
>> user's .local packages in the first place. That should only be for things
>> the user has installed "for this user".
> 
> It's not the application that looks into .local, it's Python. If you say
> that a system-installed Python shouldn't look into ~/.local, then you've
> just disabled that mechanism completely. If not then Python would
> somehow have to distinguish between system-installed and user-installed
> scripts. This isn't as easy as checking whether the path starts with
> /usr/bin or whether it belongs to root. Tying into the system's package
> manager doesn't look appealing to me (not to mention that it might be
> unacceptably slow).

Let's try a specific example. Let's say that PyQt6 v6.8.3 is installed 
in the system site directory. The OS uses PyQt6 for some system 
purposes. Now the user comes along and forces an install of PyQt6 v6.9.0 
in the user site directory. 6.9.0 has a bug that would crash one of the 
system's application but not the user's programs. (This is not a 
far-fetched scenario).

When the system launches its application the PYTHONPATH will start with 
system site directories; local user site directories will be on the 
PYTHONPATH but since they come later, the python will use PyQt6 v6.8.3 
because that will come first on the path.  No crash here.

If the user has a program that actually does require the use of v6.9.0, 
he's going to have to make sure that the user's local site directories 
come first on the path. One way to do that is to set the PYTHONPATH to 
point to the user's location.

In what scenario is a system application going to load a wrong version 
of a dependency from a user's site location? The only one I can think of 
is for the user, with the help of sudo, or by editing some 
system-enabled script, were to change the global PYTHONPATH.  That seems 
a stretch.