无法使用 WSL Debian 和 Python3.10 创建 Python venv

Posted

技术标签:

【中文标题】无法使用 WSL Debian 和 Python3.10 创建 Python venv【英文标题】:Can`t create Python venv using WSL Debian and Python3.10 【发布时间】:2022-01-15 18:54:42 【问题描述】:

我正在尝试在 Debian WSL 中默认创建 venv 命令(python3 --versionpython 3.10.0):

python3 -m venv venv

它显示了下一个错误:

Error: Command '['/.../venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.

我发现互联网建议安装依赖项:

sudo apt-get install python3.10-dev python3.10-venv

但它向我展示了:

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package python3.10-dev
E: Couldn't find any package by glob 'python3.10-dev'
E: Couldn't find any package by regex 'python3.10-dev'
E: Unable to locate package python3.10-venv
E: Couldn't find any package by glob 'python3.10-venv'
E: Couldn't find any package by regex 'python3.10-venv'

最后,我记得不到一个月前我已经在另一个 repo 中创建了正确的 venv,即使现在它也能正常工作。这让我很困惑。

【问题讨论】:

你的 Debian 代号是什么? @GAD3R 这是巴斯特 尝试安装python3-venvpython3-dev,buster默认python版本是3.7。 @GAD3R 我知道 3.7 是默认的。但是当我安装 3.10 时,这个系统中的一切都很好。不知道之后发生了什么,所以它现在不起作用。此外,如果我试图通过 python3.7 创建一个 venv,它说我需要 apt-get install python3-venv 但是当我使用这个命令时它说 python3-venv is already the newest version 【参考方案1】:

它有帮助的原因是lsb_release 问题。

对我有用的方法是:

    以 root 或 sudo 身份打开 /usr/bin/lsb_release。 将文件的第一行从# !/usr/bin/python3 -Es 编辑为# !/usr/bin/python3.10 -Es。 保存文件。

然后 venv 应该可以正常工作了。

【讨论】:

如果您认为这个问题在本网站的其他地方有答案 - flag it as duplicate 而不是发布答案的链接作为答案... @Tomerikoo 我不认为这是重复的,因为问题不一样,只回答)所以如果有人遇到同样的问题,他们可以更快地找到解决方案。 但是,问题在于该响应与您的问题之间没有明显的相关性;而不是只做一个链接的答案,你应该解释你做了什么以及它如何/为什么解决了你的问题。 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。 谢谢。我已经编辑了我的答案。希望现在看起来好多了。

以上是关于无法使用 WSL Debian 和 Python3.10 创建 Python venv的主要内容,如果未能解决你的问题,请参考以下文章

Windows10 WSL2 Ubuntu / Debian # 无网络

wsl2 debian安装docker

如何在 wsl2 上从 python3 运行 Selenium ChromeDriver?

使用 WSL2 在 Docker Desktop 上运行的容器没有实时输出

在 WSL (Ubuntu) 中为 python3 安装 venv

使用 WSL-2 和 Docker 在 PhpStorm 中设置 PHPUnit:无法解析 PHPUnit 版本输出:无法打开输入文件