python venv --upgrade不会更改venv中的python

问题描述

我在Ubuntu 18.04上,当前的python3python3.6。

我通过python3 -m venv /opt/jupyterhub/

创建了一个venv

现在,我想将venv升级python3.8。所以我跑:python3.8 -m venv /opt/jupyterhub --upgrade

这是当前结果:

➜  jupyterhub ll bin/python
lrwxrwxrwx 1 root root 7 Oct 28 12:11 bin/python -> python3
➜  jupyterhub ll bin/python3
lrwxrwxrwx 1 root root 16 Oct 28 12:11 bin/python3 -> /usr/bin/python3
➜  jupyterhub ll /usr/bin/python3
lrwxrwxrwx 1 root root 9 Jan 29  2018 /usr/bin/python3 -> python3.6
➜  jupyterhub ll bin/python3.8
lrwxrwxrwx 1 root root 18 Nov  9 09:10 bin/python3.8 -> /usr/bin/python3.8

在我的情况下,venv中的python仍然是python3.6,是否存在错误或这是设计方法

解决方法

这是因为您的python3指向python3.6

bin/python -> python3
bin/python3 -> /usr/bin/python3
/usr/bin/python3 -> python3.6

并且,您提到您使用python3命令设置了虚拟环境,该命令最近指向python3.6

您希望在虚拟环境设置中使用python3.8,因此只需更改python3指向的位置即可。要获得有关python命令替代选项更改的帮助,请参见here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...