Show a better error message when PYTHONHOME is wrong
還沒有人認領這個 Issue。
- 主要語言
- Python
- 星號
- 77.2k
- 分支
- 35.9k
- PR 合併指標
- PR 指標待擷取
描述
Feature or enhancement
Proposal:
Currently, when PYTHONHOME is wrong, python says ModuleNotFoundError: No module named 'encodings'. This is error makes it sound like a module is missing, when it's actually a part of the core interpreter configuration that is broken, which the error doesn't tell.
Ideally, the error would show if a pyvenv.cfg was loaded, as a wrong home path causes this error.
Example pyenv Python 3.12 on Ubuntu 24.04:
$ PYTHONHOME=/dev/null python
Python path configuration:
PYTHONHOME = '/dev/null'
PYTHONPATH = (not set)
program name = 'python'
isolated = 0
environment = 1
user site = 1
safe_path = 0
import site = 1
is in build tree = 0
stdlib dir = '/dev/null/lib/python3.12'
sys._base_executable = '/home/konsti/.local/bin/python'
sys.base_prefix = '/dev/null'
sys.base_exec_prefix = '/dev/null'
sys.platlibdir = 'lib'
sys.executable = '/home/konsti/.local/bin/python'
sys.prefix = '/dev/null'
sys.exec_prefix = '/dev/null'
sys.path = [
'/dev/null/lib/python312.zip',
'/dev/null/lib/python3.12',
'/dev/null/lib/python3.12/lib-dynload',
]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'
Current thread 0x00007a7eee702b80 (most recent call first):
<no Python frame>
Example python-build-standalone on Ubuntu 24.04:
$ PYTHONHOME=/dev/null python3.13
Fatal Python error: Failed to import encodings module
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'
Current thread 0x000072ef39049b80 (most recent call first):
<no Python frame>
Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Links to previous discussion of this feature:
There are several bug reports featuring this error: https://github.com/python/cpython/issues?q=is%3Aissue+%22ModuleNotFoundError%3A+No+module+named+%27encodings%27%22+
https://stackoverflow.com/questions/38132755/importerror-no-module-named-encodings
The error is occurring for users in various communities: https://www.google.com/search?q=%22ModuleNotFoundError%3A+No+module+named+%27encodings%27%22
Linked PRs
- gh-126027
- gh-127616
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
研究方向
先檢視 issue 中描述的 PYTHONHOME 與 pyvenv.cfg 處理方式,然後檢查連結的 PR gh-126027 與 gh-127616,以了解目前的方向。重現 /dev/null 範例並比較啟動診斷;完成的條件是清楚識別出不正確的 core 設定,而不只是回報缺少 encodings。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- python
- 領域
- operating-systems
- Issue 類型
- 功能
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 25/100