【问题标题】:python 3.10 venv launches 3.9 intepreterpython 3.10 venv 启动 3.9 解释器
【发布时间】:2022-01-24 07:33:53
【问题描述】:

我刚刚在 Debian bookworm 3.9 中安装了python3.10-full,因为我想用较新的 python 版本测试一个应用程序。 所以我正在创建一个运行的虚拟环境:

$ python3.10 -m venv threeten

激活venv后,python --version返回Python 3.9.9,而python3 --version返回Python 3.10.1

如果我列出我得到的 venv bin 目录:

(threeten) $ ls -l threeten/bin/ | grep python
lrwxrwxrwx 1 es es   10 Dec 23 09:58 python -> python3.10
lrwxrwxrwx 1 es es   10 Dec 23 09:58 python3 -> python3.10
lrwxrwxrwx 1 es es   19 Dec 23 09:58 python3.10 -> /usr/bin/python3.10

和:

(threeten) $ which python 
/home/es/threeten/bin/python

我尝试将threeten/bin/python 重新链接到/usr/bin/python3.10,但没有成功。

有人遇到同样的问题吗?难道我做错了什么? 谢谢!

【问题讨论】:

  • bash 是一个非常聪明的工具。某些命令可能会被散列以绕过路径搜索。如果python 被散列为python3.9 的路径,你将不得不重新散列它。你应该控制$path的内容和hash的输出

标签: python python-venv


【解决方案1】:

对此我不太确定,但可能有一些解决方案。

  1. 您为创建 venv 运行的命令应该是“.”吗?我一直使用 python -m venv 。

2.尝试编辑系统环境变量。我在windows上运行,你可以在那里编辑系统环境变量。我要做的是同时访问用户和系统变量的“路径”变量,并选择 2 个 python 3.10 路径,然后通过“向上移动”将它们提升到 3.9 以上。这给了 3.10 优先级,因此在编写“python”时,它意味着 3.10 而不是 3.9。 debian 一定有类似的替代方案。

  1. 我对linux没有太多经验,但考虑到环境变量存在,确保python 3.10的优先级高于3.9,用python3 -m(不是python 3.10)制作venv并检查版本。

  2. 如果以上都不起作用,只需重试创建 venv,但使用 python3 -m 而不是 python 3.10。这应该有效,因为当您编写 python3 --version 时,它会显示 3.10。还要确保你在 python 3.10 中安装了 venv。

【讨论】:

    猜你喜欢
    • 2021-04-08
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 2020-04-18
    • 2021-12-30
    相关资源
    最近更新 更多