在 Windows 上更新 pip 的正確方法

Windows 中一個程序運行時其可執行文件是鎖定狀態,pip.exe 就沒法更新自己:

> Get-Command pip
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     pip.exe                                            0.0.0.0    D:\src\venv\Scripts\pip.exe

> pip install -U pip
ERROR: Could not install packages due to an OSError: [WinError 5] 拒絕訪問。: 'd:\\src\\venv\\scripts\\pip.exe'
Check the permissions.

而且如果貿然這麼做,會發現接下來 pip 找不到自己了:

> pip install -U wheel setuptools
Traceback (most recent call last):
  File "C:\Python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "D:\src\venv\Scripts\pip.exe\__main__.py", line 4, in <module>
ModuleNotFoundError: No module named 'pip'

遇到這種情況先使用 ensurepip 恢復:

> python -m ensurepip --upgrade
Requirement already satisfied: setuptools in d:\src\venv\lib\site-packages (60.9.3)
Processing c:\users\my\appdata\local\temp\2\tmpwjrpp76v\pip-21.2.3-py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-21.2.3

再繞開 pip.exe 更新:

> python -m pip install -U pip
Requirement already satisfied: pip in d:\src\venv\lib\site-packages (21.2.3)
Collecting pip
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 21.2.3
    Uninstalling pip-21.2.3:
      Successfully uninstalled pip-21.2.3
Successfully installed pip-22.0.4
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章