我对使用 venv 还很陌生。对于许多不同的软件包,有没有办法告诉每个 venv 使用了多少?当我删除 venv 时,我是否也删除了为其中的所有内容分配的内存空间?

最佳答案



是的。
virtualenv 将产生一个单独的“虚拟环境”,可以独立于系统的 Python 环境使用。这允许你做一些有用的事情,比如安装没有 root 访问权限的包和更改默认的 python 解释器的版本。

如您所知,设置很容易:

$ virtualenv -p python3.5 ./venv
Running virtualenv with interpreter /usr/bin/python3.5
Using base prefix '/usr'
New python executable in /home/attie/venv/bin/python3.5
Also creating executable in /home/attie/venv/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.

完成此操作后,您将在 venv 目录中找到整个虚拟环境......并且检查它使用了多少存储空间很简单 - 在我的情况下为 18MB:

$ du -hs venv
18M     venv

激活环境后,您将看到 pip/python/etc... 二进制文件位于您的 venv 目录中:

$ which python
/usr/bin/python
$ . venv/bin/activate
$ which python
/home/attie/venv/bin/python

它是完全独立的——运行 pip install 将影响这个虚拟环境,并且根本不会改变更广泛的系统安装。

当您决定“我不再想要那个”或“哎呀,我弄坏了一些东西,让我们重新开始”时,您可以简单地删除并重新初始化虚拟环境(如果需要)。

删除此目录将释放该虚拟环境使用的所有存储空间:

$ rm -rf venv

如果您将项目文件放在虚拟环境的目录中(即本例中的 venv),那么您的项目文件也会丢失。不推荐这样做。

如果您将项目文件保留在虚拟环境之外(推荐),那么删除 venv 目录也不会整理您的项目文件 - 正如您所期望的那样。

值得注意的是以下几点:
  • 可以通过运行 deactivate 停用虚拟环境。激活虚拟环境会改变 shell 的环境,所以如果你在这个 shell 中激活了环境,那么你应该在删除它之前停用它。
  • 虚拟环境不喜欢被移动, 根本不喜欢 - 它们会完全崩溃。相反,您需要删除(如果需要)并在新位置设置新的虚拟环境。
  • 关于python-venv - Venv 和内存使用,我应该担心吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50593127/

    10-15 01:55