为什么我不能在 WSL2 Ubuntu 中使用来自 Windows 的 pip3

Why can't I use the pip3 that comes from Windows in WSL2 Ubuntu

alban@DESKTOP-P7H1H2P:/mnt/c/Users/alban$ pip3
Command 'pip3' not found, but can be installed with:
sudo apt install python3-pip

但是当我用 CMD 或 PowerShell 做同样的事情时:

PS C:\Users\alban> pip3

Usage:
  pip3 <command> [options]

有了,为什么不能用同一个pip呢?有没有办法将 WSL 指向该安装?

要在 WSL-2 上使用 pip3,您需要在命令行中强制使用“.exe”二进制文件:

pip            pip.exe     pip3         pip3.8         pip3.8.exe     pip3.exe
^ not work     ^ work      ^ not work   ^ not work     ^ work         ^ work

您还需要预先在 Windows 下安装 Python。

老问题,今天遇到了一个迟到的答案,但需要对遇到这个问题的任何人进行更多解释。

首先,WSL 做了几件事,允许您从 Linux 命令行 运行 Windows 可执行文件:

  • 默认情况下,它会自动附加 Windows 路径到 Linux 路径。
  • 默认情况下,它允许您 运行 Windows 可执行文件,但您需要指定扩展名,因为 Linux 并不真正理解扩展名的“概念” ,至少不是可执行文件。

请注意,可以通过 /etc/wsl.conf 禁用这两个功能,但您不太可能需要这样做。

因此,正如另一个答案所说,如果您可以从 CMD 或 PowerShell 中 运行 pip3,您应该能够从内部 运行 pip3.exe WSL/Linux.

但这不应该是讨论的结束。仅仅因为可以做某事并不意味着它是个好主意 ;-).

Python 和 pip 的 Windows 版本自然是为 Windows 设计的。他们了解 Windows 路径格式、Windows 流程等。如果您尝试向其传递 Linux 路径(这在 WSL 中很自然),它将无法正常工作。

is there a way to point at that installation

所以是的,虽然您 可以 将 WSL 指向 Windows Python/pip 安装,但不推荐这样做。最好安装Linux版本的pip3(sudo apt install python3-pip).