Bug related to the RustPython `rich` vendor on Windows 11 25H2.
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Lĩnh vực
- cli, compilers, operating-systems
Hướng nghiên cứu
Tái hiện pip install pillow trên Windows 11 25H2 bằng main branch, sau đó truy vết lỗi từ pip/_internal/cli/progress_bars.py đến các tệp rich vendored được hiển thị trong stack trace, đặc biệt là _win32_console.py. Hoàn thành khi việc gián đoạn tải xuống được báo cáo không còn kết thúc bằng lỗi kiểu đối số không được hỗ trợ.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Pillow won't compile because RustPython doesn't have complete C bindings (I know this), but this error is strange because it's not related to compilation—it's a bug related to the vendor-specific version of rich on Windows 11 25H2.
I'm using the latest version from the main branch.
C:\Windows\System32>pip install pillow
Collecting pillow
Downloading pillow-12.3.0.tar.gz (47.0 MB)
ERROR: Exception:---------------------------- 0.0/47.0 MB ? eta -:--:--
Traceback (most recent call last):
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\cli\progress_bars.py", line 69, in _rich_download_progress_bar
for chunk in iterable:
^^^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\network\utils.py", line 65, in response_chunks
for chunk in response.raw.stream(
~~~~~~~~~~~~~~~~~~~^
chunk_size,
^^^^^^^^^^^
...<22 lines>...
decode_content=False,
^^^^^^^^^^^^^^^^^^^^^
):
^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\urllib3\response.py", line 1251, in stream
data = self.read(amt=amt, decode_content=decode_content)
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\urllib3\response.py", line 1106, in read
data = self._raw_read(amt)
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\urllib3\response.py", line 1022, in _raw_read
data = self._fp_read(amt, read1=read1) if not fp_closed else b""
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\urllib3\response.py", line 1005, in _fp_read
return self._fp.read(amt) if amt is not None else self._fp.read()
~~~~~~~~~~~~~^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py", line 100, in read
data: bytes = self.__fp.read(amt)
~~~~~~~~~~~~~~^^^^^
File "C:\Users\Vinícius\.cargo\git\checkouts\rustpython-63090cdce5e18442\cc30cd5\Lib\http\client.py", line 484, in read
s = self.fp.read(amt)
File "C:\Users\Vinícius\.cargo\git\checkouts\rustpython-63090cdce5e18442\cc30cd5\Lib\socket.py", line 729, in readinto
return self._sock.recv_into(b)
~~~~~~~~~~~~~~~~~~~~^^^
File "C:\Users\Vinícius\.cargo\git\checkouts\rustpython-63090cdce5e18442\cc30cd5\Lib\ssl.py", line 1304, in recv_into
return self.read(nbytes, buffer)
~~~~~~~~~^^^^^^^^^^^^^^^^
File "C:\Users\Vinícius\.cargo\git\checkouts\rustpython-63090cdce5e18442\cc30cd5\Lib\ssl.py", line 1138, in read
return self._sslobj.read(len, buffer)
KeyboardInterrupt
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\cli\base_command.py", line 109, in _run_wrapper
status = _inner_run()
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\cli\base_command.py", line 102, in _inner_run
return self.run(options, args)
~~~~~~~~^^^^^^^^^^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\cli\req_command.py", line 101, in wrapper
return func(self, options, args)
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\commands\install.py", line 479, in run
requirement_set = resolver.resolve(
reqs, check_supported_wheels=not options.target_dir
)
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py", line 99, in resolve
result = self._result = resolver.resolve(
~~~~~~~~~~~~~~~~^
collected.requirements, max_rounds=limit_how_complex_resolution_can_be
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\resolvelib\resolvers\resolution.py", line 601, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\resolvelib\resolvers\resolution.py", line 434, in resolve
self._add_to_criteria(self.state.criteria, r, parent=None)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\resolvelib\resolvers\resolution.py", line 150, in _add_to_criteria
if not criterion.candidates:
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\resolvelib\structs.py", line 194, in __bool__
return bool(self._sequence)
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 165, in __bool__
self._bool = any(self)
~~~^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 149, in <genexpr>
return (c for c in iterator if id(c) not in self._incompatible_ids)
^^^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 39, in _iter_built
candidate = func()
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 182, in _make_candidate_from_link
base: BaseCandidate | None = self._make_base_candidate_from_link(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
link, template, name, version
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 228, in _make_base_candidate_from_link
self._link_candidate_cache[link] = LinkCandidate(
~~~~~~~~~~~~~^
link,
^^^^^
...<3 lines>...
version=version,
^^^^^^^^^^^^^^^^
)
^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 326, in __init__
super().__init__(
~~~~~~~~~~~~~~~~^
link=link,
^^^^^^^^^^
...<4 lines>...
version=version,
^^^^^^^^^^^^^^^^
)
^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 168, in __init__
self.dist = self._prepare()
~~~~~~~~~~~~~^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 246, in _prepare
dist = self._prepare_distribution()
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 337, in _prepare_distribution
return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\operations\prepare.py", line 542, in prepare_linked_requirement
return self._prepare_linked_requirement(req, parallel_builds)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\operations\prepare.py", line 613, in _prepare_linked_requirement
local_file = unpack_url(
link,
...<4 lines>...
hashes,
)
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\operations\prepare.py", line 180, in unpack_url
file = get_http_url(
link,
...<2 lines>...
hashes=hashes,
)
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\operations\prepare.py", line 121, in get_http_url
from_path, content_type = download(link, temp_dir.path)
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\network\download.py", line 193, in __call__
self._process_response(download, resp)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\network\download.py", line 210, in _process_response
for chunk in chunks:
^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_internal\cli\progress_bars.py", line 68, in _rich_download_progress_bar
with progress:
^^^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\rich\progress.py", line 1189, in __exit__
self.stop()
~~~~~~~~~^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\rich\progress.py", line 1175, in stop
self.live.stop()
~~~~~~~~~~~~~~^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\rich\live.py", line 162, in stop
with self.console:
^^^^^^^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\rich\console.py", line 870, in __exit__
self._exit_buffer()
~~~~~~~~~~~~~~~~~^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\rich\console.py", line 826, in _exit_buffer
self._check_buffer()
~~~~~~~~~~~~~~~~~~^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\rich\console.py", line 2038, in _check_buffer
self._write_buffer()
~~~~~~~~~~~~~~~~~~^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\rich\console.py", line 2074, in _write_buffer
legacy_windows_render(buffer, LegacyWindowsTerm(self.file))
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\rich\_windows_renderer.py", line 53, in legacy_windows_render
term.erase_line()
~~~~~~~~~~~~~~~^^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\rich\_win32_console.py", line 460, in erase_line
FillConsoleOutputCharacter(
~~~~~~~~~~~~~~~~~~~~~~~~~~^
self._handle, " ", length=cells_to_erase, start=start_coordinates
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\Vinícius\.cargo\bin\Lib\site-packages\pip\_vendor\rich\_win32_console.py", line 148, in FillConsoleOutputCharacter
_FillConsoleOutputCharacterW(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
std_handle,
^^^^^^^^^^^
...<3 lines>...
byref(num_written),
^^^^^^^^^^^^^^^^^^^
)
^
TypeError: Unsupported argument type
- Ngôn ngữ chính
- Rust
- Star
- 22.4k
- Fork
- 1.5k
- Merge trung bình
- 15 giờ 18 phút
- Pull request đã merge (30 ngày)
- 172
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.
Issue khác của RustPython/RustPython
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
RustPython/RustPython#8470 · 2 bình luận ·
-
C-bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
RustPython/RustPython#7995 · 5 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
RustPython/RustPython#5577 ·
-
C-bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
RustPython/RustPython#8685 · 7 bình luận · 1 reaction ·
-
C-compat
RustPython/RustPython#8496 · 1 bình luận · 1 người được giao ·
Tất cả issue của RustPython/RustPython
Issue tương tự
-
risk:low runtime status:in-progress type:test
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
zeroclaw-labs/zeroclaw#11023 ·
-
good first issue refactor
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
EricSpencer00/Resilient#4835 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
bisq-network/bisq-musig#204 ·
-
agent:ready documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
cesarferreira/stax#890 ·