| Summary: | net-misc/httpie-2.6.0 crashes start with dev-python/charset_normalizer-3.0.0 | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Miroslav Jaroš <mirek> |
| Component: | Current packages | Assignee: | Piotr Karbowski (RETIRED) <slashbeast> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | normal | CC: | mgorny, python |
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
Could you share the output in full please? It matters what exactly thinks it needs older charset_normalizer. The fault is not necessarily in httpie. Sure
```
$ http
Traceback (most recent call last):
File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 581, in _build_master
ws.require(__requires__)
File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 909, in require
needed = self.resolve(parse_requirements(requirements))
File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 800, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (charset-normalizer 3.0.0 (/usr/lib/python3.10/site-packages), Requirement.parse('charset-normalizer<3,>=2'), {'requests'})
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python-exec/python3.10/http", line 33, in <module>
sys.exit(load_entry_point('httpie==2.6.0', 'console_scripts', 'http')())
File "/usr/lib/python3.10/site-packages/httpie/__main__.py", line 8, in main
from httpie.core import main
File "/usr/lib/python3.10/site-packages/httpie/core.py", line 7, in <module>
import requests
File "/usr/lib/python3.10/site-packages/requests/__init__.py", line 141, in <module>
from . import packages, utils
File "/usr/lib/python3.10/site-packages/requests/utils.py", line 24, in <module>
from . import certs
File "/usr/lib/python3.10/site-packages/requests/certs.py", line 14, in <module>
from certifi import where
File "/usr/lib/python3.10/site-packages/certifi/__init__.py", line 1, in <module>
from .core import contents, where
File "/usr/lib/python3.10/site-packages/certifi/core.py", line 3, in <module>
from certifi._patch import _verify_dist_info
File "/usr/lib/python3.10/site-packages/certifi/_patch.py", line 4, in <module>
import pkg_resources
File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3260, in <module>
def _initialize_master_working_set():
File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3234, in _call_aside
f(*args, **kwargs)
File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3272, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 583, in _build_master
return cls._build_from_requirements(__requires__)
File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 596, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/home/mjaros/.local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 800, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (charset-normalizer 3.0.0 (/usr/lib/python3.10/site-packages), Requirement.parse('charset-normalizer<3,>=2'), {'requests'})
```
@Sam James I've noticed that my output contains some resolution within user-local site-packages. Just to be sure I've tried to execute it with clean user. The error seems to be very similar - just the resolution happens only within the global site-packages. Here's output:
```
$ http
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 581, in _build_master
ws.require(__requires__)
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 909, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 800, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (charset-normalizer 3.0.0 (/usr/lib/python3.10/site-packages), Requirement.parse('charset-normalizer<3,>=2'), {'requests'})
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python-exec/python3.10/http", line 33, in <module>
sys.exit(load_entry_point('httpie==2.6.0', 'console_scripts', 'http')())
File "/usr/lib/python3.10/site-packages/httpie/__main__.py", line 8, in main
from httpie.core import main
File "/usr/lib/python3.10/site-packages/httpie/core.py", line 7, in <module>
import requests
File "/usr/lib/python3.10/site-packages/requests/__init__.py", line 141, in <module>
from . import packages, utils
File "/usr/lib/python3.10/site-packages/requests/utils.py", line 24, in <module>
from . import certs
File "/usr/lib/python3.10/site-packages/requests/certs.py", line 14, in <module>
from certifi import where
File "/usr/lib/python3.10/site-packages/certifi/__init__.py", line 1, in <module>
from .core import contents, where
File "/usr/lib/python3.10/site-packages/certifi/core.py", line 3, in <module>
from certifi._patch import _verify_dist_info
File "/usr/lib/python3.10/site-packages/certifi/_patch.py", line 4, in <module>
import pkg_resources
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3260, in <module>
def _initialize_master_working_set():
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3234, in _call_aside
f(*args, **kwargs)
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 3272, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 583, in _build_master
return cls._build_from_requirements(__requires__)
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 596, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 800, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (charset-normalizer 3.0.0 (/usr/lib/python3.10/site-packages), Requirement.parse('charset-normalizer<3,>=2'), {'requests'})
```
Upgrade requests. *** This bug has been marked as a duplicate of bug 878035 *** |
The httpie package contains within a code a dependency on the `charset-normalizer` python library stating that it must be strictly lesser than 3 and above or equal to 2. But this dependency is not reflected within the ebuild of net-misc/httpie-2.6.0. Since the `dev-python/charset_normalizer-3.0.0` was recently added to the package tree (2 days ago as of writing this issue), after full system upgrade the http binary stops working. Reproducible: Always Steps to Reproduce: 1. Update whole system `emerge -aUNDv @world` 2. Install net-misc/httpie 3. Execute `http` binary Actual Results: The execution of `http` script fails with quite long stacktrace - can be provided if needed, but the most important piece of information is following line: pkg_resources.ContextualVersionConflict: (charset-normalizer 3.0.0 (/usr/lib/python3.10/site-packages), Requirement.parse('charset-normalizer<3,>=2'), {'requests'}) Expected Results: The http binary works as expected. The problem is quite recent, because `dev-python/charset_normalizer-3.0.0` was added to the package tree 2 days ago. Quick workaround is to merge `dev-python/charset_normalizer-2.1.1-r1` which fixes the issue.