DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 57NEilr32747551 Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 57NEilr32747551 Authentication-Results: delorie.com; dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=e0k0pK5E X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DA8093858424 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1755960284; bh=ejNw9/QwGzjwVghBsLIWzOlbPpobr3okMm1VXTtwmOM=; h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=e0k0pK5EYRZJUxUF2HrHxtfG9AIfaQvUkapuzD+FhVhpptvRiWxqji+ag1s5u/Kqc Iw1SgJaKWUO6aUmoFWOTPOieJi/hWusDx8YEySlntIBJn2yjSDT+tAWWP6RVVxH1s5 F/LNE4jK9km/FyQl46RsSxiZ/bylOvAwIMuLXwJ4= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9E6D93858C50 ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9E6D93858C50 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1755960257; cv=none; b=ArF0oaHdfjMyKFODrN0GxwWNEjQ9UU3SupL4pZb0DnDNLG0swD7LM4HZF7iAME8ubMGqOEB5HntrwwfRQ6spt4v+CK+yg/lBjdoNl4bl1k4bwYcQt/FPAVPRTk7jpTBaFPE6qux7SbOS+NdN6ssQ6iUhIIvJvQ77Fa+lrChUmlk= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1755960257; c=relaxed/simple; bh=TCIFRwBTiOTWwMu4rk8LTJ31AWe+RaXXk0vHecah+kM=; h=Message-ID:Date:MIME-Version:From:Subject:To:DKIM-Signature; b=Onxt/ORZcdoV9UYdvyLClIhNaaynCXHZDrVeZExnRqJSxU88g5RwMpN+B5ViPHp7FpGtofyNfyGCLCa21aGzIgDdd5S8s4lb85pT6eCnw/MggI8qJFpl4JP7sovutlQxCt2MKBEBmsylLkzIUS15E+QLq10V4tN5afObMh+NcsE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9E6D93858C50 Message-ID: Date: Sat, 23 Aug 2025 08:44:14 -0600 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Irritating artifacts of the python variety Content-Language: en-CA To: cygwin AT cygwin DOT com References: Organization: Systematic Software In-Reply-To: X-Stat-Signature: 18wx7gyjuw5yg4ehsnxawwjt8usi9ptn X-Rspamd-Server: rspamout05 X-Rspamd-Queue-Id: BBD492000E X-Session-Marker: 427269616E2E496E676C69734053797374656D6174696353572E61622E6361 X-Session-ID: U2FsdGVkX19TJHRsGaIWu0a2lIhurZr+9XvIevgS7pw= X-HE-Tag: 1755960255-776817 X-HE-Meta: U2FsdGVkX1+Mtg6ZIv2Kn8QfKs92sGX8TFe9woNRTu+XumHxXtPg/0DrTTz0NKvHKt8JHG5O1S9dlrFekLAlSWsFngpRv9UlrKFGoi0sV2EmVYLwIrfsNCVzbBTYBgwdUdoKW74tipFNun+iM+qldZ4sYVmvsT7hU2z9bb2fDSDJClosnFX14QvOPoDo+J6vgqOejsDSvtVqaWq6DpnAXTAh9TNEacrdQ/votskSSKEBqcPdzVERfAEQJNWv3I0XPkBoMQqYF8E/awHrrt619j0XUQE+wWGcwkxqa4zyyaU7VmT60wzHI8wG4ThLZCvMZLSs83N++oC4W9sRkXn8cj/ZLVR73H49zMtC+VfZ0FLedWGrIkBJsCV7pEoQQM8tslxOZK23+aRSu6gd/kR8og== X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.30 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Brian Inglis via Cygwin Reply-To: cygwin AT cygwin DOT com Cc: Brian Inglis Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com Sender: "Cygwin" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 57NEilr32747551 On 2025-08-22 19:00, Doug Henderson via Cygwin wrote: > On Fri, Aug 22, 2025 at 10:39 AM Soren via Cygwin wrote: >> > >> ... I didn't seem to have >> "pip" installed (notice the "seem" por favor). So I started >> setup-x86_64 and worked through the process of installing "pip". I am >> working with python3 so I tried to select a "pip" that corresponded >> with it. > > Python uses the "alternatives" system to allow multiple versions of > python to be installed at the same time. > > Use "man alternatives" or "info alternatives" to learn about it, as > there are several different "alternative" implementations used by > different *NIX systems. > > Briefly, "alternatives" is located at "/usr/sbin/alternatives", > because several of its functions required "root" or an elevated shell, > e.g. started with "run as administrator". > > The "alternatives --list" command will show you which programs are > configured to use "alternatives". On my machine, the output looks > like: > > $ /usr/sbin/alternatives --list > pip3 auto /usr/bin/pip3.12 > pydoc3 auto /usr/bin/pydoc3.12 > python manual /usr/bin/python3.12.exe > python3 manual /usr/bin/python3.12.exe > sphinx-apidoc auto /usr/bin/sphinx-apidoc-3.9 > sphinx-autogen auto /usr/bin/sphinx-autogen-3.9 > sphinx-build auto /usr/bin/sphinx-build-3.9 > sphinx-quickstart auto /usr/bin/sphinx-quickstart-3.9 > > (This also shows that I have only installed the 3.9 version of the > sphinx documentation creation suite, and not the 3.12 version.) > > The "alternatives pip3" and "alternatives python3" commands show me more info: > > $ /usr/sbin/alternatives --display pip3 > pip3 - status is auto. > link currently points to /usr/bin/pip3.12 > /usr/bin/pip3.9 - priority 39 > /usr/bin/pip3.12 - priority 312 > Current `best' version is /usr/bin/pip3.12. > > $ /usr/sbin/alternatives --display python3 > python3 - status is manual. > link currently points to /usr/bin/python3.12.exe > /usr/bin/python3.9 - priority 39 > /usr/bin/python3.12 - priority 312 > Current `best' version is /usr/bin/python3.12. > > These show that I have two versions installed, with the 3.12 versions > configured as the defaults. I can still run the non-default versions > by using the full file names, e.g. "python3.9". You are strongly > advised to use the corresponding versions together, to avoid your > confusion and Python errors. > > The root user (I, in an elevated shell) can change the default > versions between 3.9 and 3.12 by using the interactive "alternatives > --config python3" and "alternatives --config pip3" commands. > > As a regular user, I use the "python3" or just "python" and the > "pip3" commands to run Python and Pip. You will have to create a > virtual environment using e.g. "python -m venv venv" to use "pip > install" as a regular user. Otherwise you will need to run "pip > install" in an elevated shell. You will also find you have a bunch of postinstall (.done) and preremove scripts that Cygwin Setup will use to clean up your system when you (manually) select python2.7/3.6/3.7 for deinstall (also removing a bunch of vulnerabilities!) $ grep alternatives /etc/postinstall/python3*.sh* /etc/preremove/python3*.sh /etc/postinstall/python39.sh.done:/usr/sbin/alternatives --install /usr/bin/python python /usr/bin/python3.9 39 /etc/postinstall/python39.sh.done:/usr/sbin/alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 39 /etc/postinstall/python39.sh.done:/usr/sbin/alternatives --install /usr/bin/pydoc3 pydoc3 /usr/bin/pydoc3.9 39 /etc/postinstall/python39-devel.sh.done:/usr/sbin/alternatives --install /usr/bin/2to3 2to3 /usr/bin/2to3-3.9 39 /etc/postinstall/python39-devel.sh.done:/usr/sbin/alternatives --install /usr/bin/python3-config python3-config /usr/bin/python3.9-config 39 /etc/postinstall/python39-pip.sh.done:/usr/sbin/alternatives --install /usr/bin/pip3 pip3 /usr/bin/pip3.9 39 /etc/postinstall/python39-sphinx.sh.done:/usr/sbin/alternatives --install /usr/bin/sphinx-apidoc sphinx-apidoc /usr/bin/sphinx-apidoc-3.9 39 /etc/postinstall/python39-sphinx.sh.done:/usr/sbin/alternatives --install /usr/bin/sphinx-autogen sphinx-autogen /usr/bin/sphinx-autogen-3.9 39 /etc/postinstall/python39-sphinx.sh.done:/usr/sbin/alternatives --install /usr/bin/sphinx-build sphinx-build /usr/bin/sphinx-build-3.9 39 /etc/postinstall/python39-sphinx.sh.done:/usr/sbin/alternatives --install /usr/bin/sphinx-quickstart sphinx-quickstart /usr/bin/sphinx-quickstart-3.9 39 /etc/preremove/python39.sh:/usr/sbin/alternatives --remove python /usr/bin/python3.9 /etc/preremove/python39.sh:/usr/sbin/alternatives --remove python3 /usr/bin/python3.9 /etc/preremove/python39.sh:/usr/sbin/alternatives --remove pydoc3 /usr/bin/pydoc3.9 /etc/preremove/python39-devel.sh:/usr/sbin/alternatives --remove 2to3 /usr/bin/2to3-3.9 /etc/preremove/python39-devel.sh:/usr/sbin/alternatives --remove python3-config /usr/bin/python3.9-config /etc/preremove/python39-pip.sh:/usr/sbin/alternatives --remove pip3 /usr/bin/pip3.9 /etc/preremove/python39-sphinx.sh:/usr/sbin/alternatives --remove sphinx-apidoc /usr/bin/sphinx-apidoc-3.9 /etc/preremove/python39-sphinx.sh:/usr/sbin/alternatives --remove sphinx-autogen /usr/bin/sphinx-autogen-3.9 /etc/preremove/python39-sphinx.sh:/usr/sbin/alternatives --remove sphinx-build /usr/bin/sphinx-build-3.9 /etc/preremove/python39-sphinx.sh:/usr/sbin/alternatives --remove sphinx-quickstart /usr/bin/sphinx-quickstart-3.9 -- Take care. Thanks, Brian Inglis Calgary, Alberta, Canada La perfection est atteinte Perfection is achieved non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add mais lorsqu'il n'y a plus rien à retrancher but when there is no more to cut -- Antoine de Saint-Exupéry -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple