如何让`python`在WSL bash中运行Python 3?

问题描述 投票:0回答:3

当我在 Windows 10 家庭版的 bash shell(适用于 Linux 的 Windows 子系统)中输入

python
时,我收到以下错误消息:

The program 'python' can be found in the following packages:
 * python-minimal
 * python3
Try: sudo apt install <selected package>

我尝试安装

python3
,但被告知它已经安装并且是最新的。

我尝试卸载

python-minimal
但被告知它尚未安装(!)

为什么我会看到两个“竞争”的 Python 包?如何修复冲突并配置 WSL bash 以从

python
运行 Python 3?

python bash windows-10 windows-subsystem-for-linux
3个回答
15
投票

如果您在 WSL 下运行 Ubuntu 20,则有一个名为

python-is-python3
的新软件包:

cameron@Nook:/mnt/c/Users/camer$ sudo apt install python-is-python3
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  python-is-python3
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 2364 B of archives.
After this operation, 10.2 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 python-is-python3 all 3.8.2-4 [2364 B]
Fetched 2364 B in 0s (7208 B/s)
Selecting previously unselected package python-is-python3.
(Reading database ... 33571 files and directories currently installed.)
Preparing to unpack .../python-is-python3_3.8.2-4_all.deb ...
Unpacking python-is-python3 (3.8.2-4) ...
Setting up python-is-python3 (3.8.2-4) ...
cameron@Nook:/mnt/c/Users/camer$ python --version
Python 3.8.10

或者,您可以使用

update-alternatives

sudo update-alternatives --install /usr/bin/python python $(readlink -f $(which python3)) 3

7
投票
在 Linux 世界中,

python
作为 CLI 命令几乎总是意味着
python2
而不是
python3
。确保您已安装
python2
(
sudo apt install python
)。

不要

python
别名为
python3
- 这是一些不好的建议!

要运行

python3
,您必须在 CLI 上指定
python3


0
投票

如果你的脚本可以使用 python3,别名是最简单的方法:

sudo ln -s /usr/bin/python3 /usr/bin/python
© www.soinside.com 2019 - 2024. All rights reserved.