Venv 和内存使用,我应该关注吗?
Venv and Memory Usage, Should I be Concerned?
我对使用 venv 还很陌生。对于许多不同的包,有没有办法告诉每个 venv 使用了多少?当我删除一个 venv 时,我是否也删除了分配给其中所有内容的内存 space?
When I delete a venv am I also removing the memory space allocated for everything located within?
是的。
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 中激活了环境,那么你应该在删除它之前停用它。
- 虚拟环境不喜欢被移动,根本 - 它们会完全崩溃。相反,您需要删除(如果需要)并在新位置设置新的虚拟环境。
我对使用 venv 还很陌生。对于许多不同的包,有没有办法告诉每个 venv 使用了多少?当我删除一个 venv 时,我是否也删除了分配给其中所有内容的内存 space?
When I delete a venv am I also removing the memory space allocated for everything located within?
是的。
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 中激活了环境,那么你应该在删除它之前停用它。 - 虚拟环境不喜欢被移动,根本 - 它们会完全崩溃。相反,您需要删除(如果需要)并在新位置设置新的虚拟环境。