The Fix
Upgrade to version 0.7.2 or later.
Based on closed encode/httpx issue #233 · PR/commit linked
Production note: Most teams hit this during upgrades or environment changes. Roll out with a canary and smoke critical endpoints (health, OpenAPI/docs) before 100%.
@@ -1,5 +1,9 @@
# Changelog
+## 0.7.1 (August 18, 2019)
+
+- Include files with source distribution to be installable. (Pull #233)
pip install httpx
Collecting httpx
Downloading https://files.pythonhosted.org/packages/12/b3/fdd6e528a3385e2149ad42cc4e9b54e326d532e3e79a86e7cfdaea45723e/httpx-0.7.0.tar.gz (41kB)
|████████████████████████████████| 51kB 1.4MB/s
ERROR: Complete output from command python setup.py egg_info:
ERROR: Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/73/4w3335w5157419t63g0ghx4h0000gn/T/pip-install-yw4ftz0n/httpx/setup.py", line 45, in <module>
long_description=get_long_description(),
File "/private/var/folders/73/4w3335w5157419t63g0ghx4h0000gn/T/pip-install-yw4ftz0n/httpx/setup.py", line 26, in get_long_description
with open("CHANGELOG.md", encoding="utf8") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'CHANGELOG.md'
----------------------------------------
ERROR: Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/73/4w3335w5157419t63g0ghx4h0000gn/T/pip-install-yw4ftz0n/httpx/
Re-run: poetry update
Option A — Upgrade to fixed release\nUpgrade to version 0.7.2 or later.\nWhen NOT to use: This fix should not be used if the package is not being installed from source.\n\n
Why This Fix Works in Production
- Trigger: $ poetry update
- Mechanism: Release 0.7.1 fixes the packaging issue by including necessary files in the source distribution.
- Why the fix works: Release 0.7.1 fixes the packaging issue by including necessary files in the source distribution. (first fixed release: 0.7.2).
- If left unfixed, the same config can fail only in production (env differences), causing startup failures or partial feature outages.
Why This Breaks in Prod
- Shows up under Python 3.8 in real deployments (not just unit tests).
- Surfaces as: $ poetry update
Proof / Evidence
- GitHub issue: #233
- Fix PR: https://github.com/encode/httpx/pull/234
- First fixed release: 0.7.2
- Reproduced locally: No (not executed)
- Last verified: 2026-02-09
- Confidence: 0.85
- Did this fix it?: Yes (upstream fix exists)
- Own content ratio: 0.14
Discussion
High-signal excerpts from the issue thread (symptoms, repros, edge-cases).
“I can replicate simply doing pip install httpx: I can't see a MANIFEST.in file in our repo, how are we adding these files to the…”
“Yep this is an issue, I'm fixing this up creating a PR now and releasing 0.7.1.”
“Awesome, thanks for the amazing response time ⚡️ 😄”
“Just so happened to be awake at 5am lol went back to bed after :)”
Failure Signature (Search String)
- $ poetry update
Error Message
Stack trace
Error Message
-------------
$ poetry update
Updating dependencies
Resolving dependencies... (1.0s)
Package operations: 0 installs, 1 update, 0 removals
- Updating httpx (0.6.8 -> 0.7.0)
[EnvCommandError]
Command ['/Users/pablo/Library/Caches/pypoetry/virtualenvs/drop-eventsng-1aNj3rOl-py3.7/bin/python', '-m', 'pip', 'install', '--no-deps', '-U', 'httpx==0.7.0'] errored with the following return code 1, and output:
Collecting httpx==0.7.0
Using cached https://files.pythonhosted.org/packages/12/b3/fdd6e528a3385e2149ad42cc4e9b54e326d532e3e79a86e7cfdaea45723e/httpx-0.7.0.tar.gz
ERROR: Command errored out with exit status 1:
command: /Users/pablo/Library/Caches/pypoetry/virtualenvs/drop-eventsng-1aNj3rOl-py3.7/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/x4/txc7_0pn6zlfb30cs_0sh5mm0000gn/T/pip-install-jq6aut9d/httpx/setup.py'"'"'; __file__='"'"'/private/var/folders/x4/txc7_0pn6zlfb30cs_0sh5mm0000gn/T/pip-install-jq6aut9d/httpx/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
cwd: /private/var/folders/x4/txc7_0pn6zlfb30cs_0sh5mm0000gn/T/pip-install-jq6aut9d/httpx/
Complete output (7 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File
... (truncated) ...
Stack trace
Error Message
-------------
pip install httpx
Collecting httpx
Downloading https://files.pythonhosted.org/packages/12/b3/fdd6e528a3385e2149ad42cc4e9b54e326d532e3e79a86e7cfdaea45723e/httpx-0.7.0.tar.gz (41kB)
|████████████████████████████████| 51kB 1.4MB/s
ERROR: Complete output from command python setup.py egg_info:
ERROR: Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/73/4w3335w5157419t63g0ghx4h0000gn/T/pip-install-yw4ftz0n/httpx/setup.py", line 45, in <module>
long_description=get_long_description(),
File "/private/var/folders/73/4w3335w5157419t63g0ghx4h0000gn/T/pip-install-yw4ftz0n/httpx/setup.py", line 26, in get_long_description
with open("CHANGELOG.md", encoding="utf8") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'CHANGELOG.md'
----------------------------------------
ERROR: Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/73/4w3335w5157419t63g0ghx4h0000gn/T/pip-install-yw4ftz0n/httpx/
Stack trace
Error Message
-------------
ERROR: Command errored out with exit status 1:
command: /Users/pablo/Library/Caches/pypoetry/virtualenvs/drop-eventsng-1aNj3rOl-py3.7/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/x4/txc7_0pn6zlfb30cs_0sh5mm0000gn/T/pip-install-jq6aut9d/httpx/setup.py'"'"'; __file__='"'"'/private/var/folders/x4/txc7_0pn6zlfb30cs_0sh5mm0000gn/T/pip-install-jq6aut9d/httpx/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
cwd: /private/var/folders/x4/txc7_0pn6zlfb30cs_0sh5mm0000gn/T/pip-install-jq6aut9d/httpx/
Complete output (7 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/x4/txc7_0pn6zlfb30cs_0sh5mm0000gn/T/pip-install-jq6aut9d/httpx/setup.py", line 45, in <module>
long_description=get_long_description(),
File "/private/var/folders/x4/txc7_0pn6zlfb30cs_0sh5mm0000gn/T/pip-install-jq6aut9d/httpx/setup.py", line 26, in get_long_description
with open("CHANGELOG.md", encoding="utf8") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'CHANGELOG.md'
----------------------------------------
Minimal Reproduction
pip install httpx
Collecting httpx
Downloading https://files.pythonhosted.org/packages/12/b3/fdd6e528a3385e2149ad42cc4e9b54e326d532e3e79a86e7cfdaea45723e/httpx-0.7.0.tar.gz (41kB)
|████████████████████████████████| 51kB 1.4MB/s
ERROR: Complete output from command python setup.py egg_info:
ERROR: Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/73/4w3335w5157419t63g0ghx4h0000gn/T/pip-install-yw4ftz0n/httpx/setup.py", line 45, in <module>
long_description=get_long_description(),
File "/private/var/folders/73/4w3335w5157419t63g0ghx4h0000gn/T/pip-install-yw4ftz0n/httpx/setup.py", line 26, in get_long_description
with open("CHANGELOG.md", encoding="utf8") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'CHANGELOG.md'
----------------------------------------
ERROR: Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/73/4w3335w5157419t63g0ghx4h0000gn/T/pip-install-yw4ftz0n/httpx/
Environment
- Python: 3.8
What Broke
Users experienced installation failures due to missing files in the package.
Fix Options (Details)
Option A — Upgrade to fixed release Safe default (recommended)
Upgrade to version 0.7.2 or later.
Use when you can deploy the upstream fix. It is usually lower-risk than long-lived workarounds.
Fix reference: https://github.com/encode/httpx/pull/234
First fixed release: 0.7.2
Last verified: 2026-02-09. Validate in your environment.
When NOT to Use This Fix
- This fix should not be used if the package is not being installed from source.
Verify Fix
Re-run: poetry update
Did This Fix Work in Your Case?
Quick signal helps us prioritize which fixes to verify and improve.
Prevention
- Add a CI check that diffs key outputs after upgrades (OpenAPI schema snapshots, JSON payload shapes, CLI output).
- Upgrade behind a canary and run integration tests against the canary before 100% rollout.
Version Compatibility Table
| Version | Status |
|---|---|
| 0.7.2 | Fixed |
Related Issues
No related fixes found.
Sources
We don’t republish the full GitHub discussion text. Use the links above for context.