Show a better error message when PYTHONHOME is wrong
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 77.2k
- Fork
- 35.9k
- Chỉ số merge pull request
- Chỉ số pull request đang chờ
Mô tả
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
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng việc xem xét cách xử lý PYTHONHOME và pyvenv.cfg được mô tả trong issue, sau đó kiểm tra các PR được liên kết gh-126027 và gh-127616 để nắm hướng hiện tại. Tái hiện các ví dụ /dev/null và so sánh các chẩn đoán khi khởi động; được xem là hoàn tất khi xác định rõ một cấu hình core không đúng, thay vì chỉ báo cáo rằng encodings bị thiếu.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- operating-systems
- Loại issue
- Tính năng
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 25/100