Error installing `tar.gz` with python 3.13.4-3.14.0(with pip >=24.1) when %TMP% folder is in an ImDisk created RAMDISK volume
まだ誰も着手していません。
- 主要言語
- Python
- スター
- 77.2k
- フォーク
- 35.9k
- PR マージ指標
- PR 指標を取得中
説明
Bug report
Bug description:
Please see discussion at https://github.com/adang1345/PythonVista/issues/56#issuecomment-3392359923
python versions 3.13.4 - 3.14.0 don't like it when %TMP% folder is in ImDisk created RAMDISK volumes.
I've confirmed Python 3.13.3 works when %TMP% folder is in ImDisk created RAMDISKs.
To reproduce.
Run Windows 11.
Install https://sourceforge.net/projects/imdisk-toolkit/files/20220301/ (20220301 is the version I'm using. There are newer versions as well but I've not attempted to reproduce the bug in those versions).
Create an NTFS or exFAT RAMDISK of 1024MB. Say drive letter X:
First to confirm it used to work with 3.13.3
Install https://www.python.org/ftp/python/3.13.3/python-3.13.3-amd64.exe
Run cmd.
X:
md tmp
set TMP=X:\tmp
set TEMP=X:\tmp
python --version && python.exe -m pip --no-cache-dir install --upgrade --force-reinstall --no-deps https://github.com/mikf/gallery-dl/archive/master.tar.gz
Python 3.13.3
Collecting https://github.com/mikf/gallery-dl/archive/master.tar.gz
Downloading https://github.com/mikf/gallery-dl/archive/master.tar.gz (998 kB)
---------------------------------------- 998.5/998.5 kB 1.0 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: gallery_dl
Building wheel for gallery_dl (pyproject.toml) ... done
Created wheel for gallery_dl: filename=gallery_dl-1.31.0.dev0-py3-none-any.whl size=703184 sha256=cdac923250f61b1c563328449657c7f642c9536a179900695c6c85d8baa8f549
Stored in directory: X:\tmp\pip-ephem-wheel-cache-77tc2m6j\wheels\25\ff\1b\fd8a6b035f92eb9808314dfe7832003d04eaf0c61ba8e4c900
Successfully built gallery_dl
Installing collected packages: gallery_dl
Successfully installed gallery_dl
[notice] A new release of pip is available: 25.0.1 -> 25.2
[notice] To update, run: python.exe -m pip install --upgrade pip
Now to confirm it doesn't work with 3.13.4
Install https://www.python.org/ftp/python/3.13.4/python-3.13.4-amd64.exe
Run cmd.
X:
md tmp
set TMP=X:\tmp
set TEMP=X:\tmp
python --version && python.exe -m pip --no-cache-dir install --upgrade --force-reinstall --no-deps https://github.com/mikf/gallery-dl/archive/master.tar.gz
Python 3.13.4
Collecting https://github.com/mikf/gallery-dl/archive/master.tar.gz
Downloading https://github.com/mikf/gallery-dl/archive/master.tar.gz
- 998.5 kB 1.0 MB/s 0:00:01
ERROR: Could not install packages due to an OSError: [WinError 1] Incorrect function: 'X:\\tmp\\pip-req-build-5rbqqbqd'
[notice] A new release of pip is available: 25.1.1 -> 25.2
[notice] To update, run: python.exe -m pip install --upgrade pip
I tested every version 3.13.4 onwards. They all fail.
Something changed between 3.13.3 and 3.13.4 that is causing this issue.
The reason I use RAMDISKs is to minimize wear on my disks. So I would appreciate any help. Thanks!
From @adang1345 in that discussion
I also did some testing with different versions of pip, and it seems that the error occurs when you have pip 24.1 or higher and the Python instance contains https://github.com/python/cpython/issues/135034
Basically,
| PYTHON 3.13.3+ImDisk | PYTHON 3.13.4-3.14.0 + ImDisk | |
|---|---|---|
| PIP 24.0 | ✓ | ✓ |
| PIP >=24.1 | ✓ | ☓ |
CPython versions tested on:
3.14
Operating systems tested on:
Windows
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、Python 3.13.3 と 3.13.4、ImDisk の NTFS または exFAT RAMDISK、および提供された pip install コマンドを使って、Windows 11 の失敗を再現します。リンクされたディスカッションと CPython issue 135034 を読み、その後、関連する一時ファイルの動作を比較します。影響を受けるバージョンで tar.gz のインストールが成功するように、リグレッションを特定して修正できれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- python
- 領域
- operating-systems
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 30/100