问题描述
我在 MSYS2 shell 中使用以下命令在 MSYS2 上安装了 pip:
pacman -S mingw-w64-x86_64-python-pip
(包的网页:https://packages.msys2.org/package/mingw-w64-x86_64-python-pip)
安装后,当我尝试在 MSYS2 shell 中运行 pip 时,我得到:bash: pip: command not found
出于某种原因,它没有在 MSYS2 系统路径中的任何位置安装 pip。 C:\msys64\usr\bin
中没有名为“pip”的文件。但是,安装确实在 C:\msys64\mingw64\bin
中添加了一个名为“pip”的文件。此目录不是 MSYS2 使用的默认路径的一部分。
我应该将 C:\msys64\mingw64\bin
添加到我的 MSYS2 PATH 中吗?更重要的是,为什么它将 pip 安装到不在 PATH 中的目录?有这种烦恼的原因吗?
解决方法
作为 documentation explains,MSYS2 项目由两个部分组成:MinGW 和 MSYS 本身。它们之间的区别如下:
- MinGW 软件包是本地 Windows 二进制文件,它们本身用于构建本地 Windows 软件。它们可以独立于 MSYS 运行,但 MSYS 可以简化它们的使用,例如通过提供类似 Unix 的 shell 脚本语言。
- (正确的)MSYS 包在虚拟 POSIX 环境中运行,该环境用作构建系统,旨在引导 MSYS2 的其余部分。它结合了足够的 POSIX 特性(例如熟悉的
/bin
、/lib
、/etc
等目录结构),允许从类 Unix 系统移植软件,而无需广泛地将其调整到 Windows平台。 MSYS 部分中的开发工具用于构建依赖于 MSYS 环境的软件。
mingw-w64-x86_64-python-pip
包属于 MinGW 部分。为了使用它,您需要启动一个 MinGW shell,以便您可以访问用于构建原生 Windows 软件的 MinGW 环境。如果您想让 pip
在 MSYS shell 中可用,您需要安装 MSYS 包 python-pip
。
至于手动将 /mingw64/bin
添加到您的 PATH
:不,您绝对是 not supposed to do that。不支持以这种方式混合环境;重点是让他们分开。