![你能在 venv 中升级虚拟环境吗?](https://linux22.com/image/1057664/%E4%BD%A0%E8%83%BD%E5%9C%A8%20venv%20%E4%B8%AD%E5%8D%87%E7%BA%A7%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%E5%90%97%EF%BC%9F.png)
我在 Ubuntu 14.04 中使用 venv,在我考虑清楚之前,我sudo apt-get upgrade
在 venv 中使用了该命令。现在我想知道这是否是我虚拟环境的真正升级,我是否需要修复它?
答案1
Python 虚拟环境(“venv”)不会影响与 Python 无关的应用程序。
它只会将bin/
包含可执行文件的 venv 目录添加到变量前面PATH
。这会导致命令查找(例如)python
解析为该目录而不是系统的可执行文件。此外,它还会更改 Python 使用的一些其他环境变量和别名。
这些变化都不会中断apt-get
,也不可能影响系统包的管理方式。
总之,apt-get
在 Python 虚拟环境中操作时运行或类似的东西是安全的。
如果需要,您可以检查bin/activate
用于进入虚拟环境的 venv 目录中的脚本。这样您就可以准确地看到发生了什么变化。
答案2
仅当您使用该选项创建了虚拟环境时才是这样的--system-site-packages
。
运行会升级您之前使用 安装的sudo apt-get upgrade
系统 Python 包(python-
对于 Python 2 包以 为前缀,对于 Python 3 包以 为前缀) 。如果您的虚拟环境是使用 选项创建的,则它使用系统 Python 包,没有自己的站点包。在这种情况下,会升级您的虚拟环境,因为它使用的系统 Python 包也会升级。python3-
apt-get
--system-site-packages
sudo apt-get upgrade