zwo*_*wol 4 python windows pip virtualenv
在 Windows 上,如果您尝试pip在 virtualenv 中自我升级,您可能会收到一个神秘的“访问被拒绝”错误。例如:
D:\scratch\> C:\Program Files\Python\3.7.4\x64\python.exe -m venv D:\scratch\my-venv
D:\scratch\> D:\scratch\my-venv\Scripts\activate
(my-venv) D:\scratch\> pip install --upgrade pip
Collecting pip
Downloading pip-19.3.1-py2.py3-none-any.whl (1.4MB)
Installing collected packages: pip
Found existing installation: pip 19.0.3
Uninstalling pip-19.0.3:
Could not install packages due to an EnvironmentError:
[WinError 5] Access is denied: 'd:\\scratch\\my-venv\\scripts\\pip.exe'
Consider using the `--user` option or check the permissions.
Run Code Online (Sandbox Code Playgroud)
无论命令提示符是否具有管理权限,都会发生这种情况。我们知道我们对里面的所有东西都有写访问权限d:\scratch\my-venv,因为我们刚刚用初始python -m venv命令创建了它。使用该--user选项的建议无济于事,因为我们想升级virtualenv 中的 pip 版本,但这是--user行不通的。
可能有什么问题,在 Windows 上的 virtualenv 中升级 pip 的正确方法是什么?
zwo*_*wol 14
我不知道这是否是发生这种情况的唯一原因,但请注意“访问被拒绝”错误指向d:\scratch\my-venv\scripts\pip.exe. pip 正在尝试替换自身,而 Windows 不允许您以任何方式修改正在运行的 EXE 文件。
此特定问题的解决方法是python -m pip install --upgrade pip改用。这种方式pip.exe没有运行,所以 Windows 将允许它被替换。此操作不会尝试覆盖d:\scratch\my-venv\scripts\python.exe,Windows 也不关心 pip 对属于 pip 包的所有其他文件做了什么。
有关更多信息,请参阅https://github.com/pypa/pip/issues/188和https://github.com/pypa/pip/issues/1299。
| 归档时间: |
|
| 查看次数: |
1883 次 |
| 最近记录: |