python37-requests package does depends on charset_normalizer or chardet

Adam Dinwoodie adam@dinwoodie.org
Fri Feb 25 09:11:09 GMT 2022


On Fri, Feb 25, 2022 at 04:40:01PM +0800, Sharuzzaman Ahmat Raslan wrote:
> On Wed, Feb 23, 2022 at 10:58 PM Adam Dinwoodie <adam@dinwoodie.org> wrote:
> >
> > On Wed, Feb 23, 2022 at 06:56:46PM +0800, Sharuzzaman Ahmat Raslan wrote:
> > > On Wed, Feb 23, 2022 at 6:37 PM Sharuzzaman Ahmat Raslan
> > > <sharuzzaman@gmail.com> wrote:
> > > >
> > > > Hi Cygwin package manager.
> > > >
> > > > I'm on my new laptop, and installing packages as necessary.
> > > >
> > > > After installing python37-requests, my program raised an exception like this:
> > > >
> > > > Traceback (most recent call last):
> > > >   File "get_header.py", line 1, in <module>
> > > >     import requests
> > > >   File "/usr/lib/python3.7/site-packages/requests/__init__.py", line
> > > > 100, in <module>
> > > >     check_compatibility(urllib3.__version__, chardet_version,
> > > > charset_normalizer_version)
> > > >   File "/usr/lib/python3.7/site-packages/requests/__init__.py", line
> > > > 85, in check_compatibility
> > > >     raise Exception("You need either charset_normalizer or chardet installed")
> > > > Exception: You need either charset_normalizer or chardet installed
> > > >
> > > > I did not see python37-requests depends or pulling in
> > > > charset_normalizer or chardet during installation. Is that
> > > > intentional?
> > > >
> > > > Thank you.
> > >
> > >
> > > Installing python37-chardet manually clears the exception, but not
> > > solving the initial issue.
> >
> > It looks to me as though python37-requests correctly lists a dependency
> > on python37-chardet in Cygwin's setup.ini.  Can you please provide the
> > setup.log.full file from when you installed python37-requests, as well
> > as the cygcheck output per the link below?
> >
> > > Problem reports:      https://cygwin.com/problems.html
> >
> 
> Hi Adam.
> 
> Attached is the setup log that is relevant to the time I install
> python37-requests.
> 
> The setup.log.full contains the python37-chardet info, but not
> python37-requests.
> 
> Also attached is the cygcheck.out file
> 
> If you want to have the python37-requests setup.log.full, I can redo
> the installation and capture it.

Ah, I've worked out what confused me: I was looking at the old
"requires" line in the setup.ini file, rather than the new "depends2"
line.  The newer style of specifying dependencies, used by recent Cygwin
installers (including the one you were using) doesn't list
python37-chardet as a dependency.  I suspect that's a bug, and it looks
like a bug that was introduced with the most recent python37-requests
package, as it's present for the previous 2.24.0-1 and 2.25.1-1
releases.

I think this is one for Marco Atzeri, as the python-requests package
maintainer...

In the meantime, you've already found the workaround: just manually
install the relevant python-chardet package.


More information about the Cygwin mailing list