我对使用 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/