On Fri, Nov 10, 2023 at 02:35:16PM +0000, Jon Turney wrote:
> On 08/11/2023 16:17, Adam Dinwoodie via Cygwin wrote:
> > Hullo,
> > 
> > It looks like the python39 package is missing dependencies on
> > python-setuptools-wheel and python-pip-wheel.  I've not checked, but I
> > suspect earlier Python versions are missing the same dependencies.
> > Without these, the Python built-in venv module doesn't work:
> > 
> >      $ python3 -m venv v
> >      Error: Command '['/home/WDAGUtilityAccount/v/bin/python3', '-Im', 
> > 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
> > 
> > Compare when the both python-setuptools-wheel and python-pip-wheel are
> > installed:
> > 
> >      $ python3 -m venv v
> >      $ . v/bin/activate
> >      (v) $ python3 -c 'import sys; print(sys.path)'
> >      ['', '/usr/lib/python39.zip', '/usr/lib/python3.9', 
> > '/usr/lib/python3.9/lib-dynload', 
> > '/home/WDAGUtilityAccount/v/lib/python3.9/site-packages']
> >      (v) $ deactivate
> > 
> > I've attached cygcheck files from sandbox VMs for both the broken and
> > working cases.  I'm not sure what the correct fix is here -- possibly
> > adding dependencies, possibly changing how things are packaged -- but
> > I'd expect Python standard library modules to either work or to give an
> > error message that makes it clearer what additional packages are
> > required to make them work.
> 
> Yeah. I have a vague recollection there was some other case recently where
> one these being missing was causing some confusion.
> 
> I think the easiest way to convince me that this is a historical oversight
> would be to look how other distros do this: If they have python depend on
> python-setuptools and python-wheel, then we probably should as well...

I only have Debian set up to check quickly, but just looking at that
example:

- /usr/share/python-wheels/setuptools-66.1.1-py3-none-any.whl is
  provided by the python3-setuptools-whl package.
- python3-setuptools-whl is required by python3.11-venv
- python3.11-venv is required by python3-venv
- python3-venv is suggested (*not* required) by python3

Slighly confusingly, python3.11-venv looks to only provide the ensurepip
module; the venv module is provided by libpython3.11-stdlib, which is a
requirement for python3, so it's only an Apt "suggestion" that gets this
working there.  However, Debian does provide a more useful error message
when you don't have things installed usefully:

    $ python3 -m venv v
    The virtual environment was not created successfully because ensurepip is 
not
    available.  On Debian/Ubuntu systems, you need to install the python3-venv
    package using the following command.
    
        apt install python3.11-venv
    
    You may need to use sudo with that command.  After installing the 
python3-venv
    package, recreate your virtual environment.
    
    Failing command: /home/adam/v/bin/python3

So that's at least one other distro that is at least a bit more helpful.
As I say, I don't have strong opinions on what the correct fix is here.
Just adding the dependencies is an obvious option, and probably the
easiest option from a maintainer perspective, but it's clearly not the
only option.

-- 
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

Reply via email to