如何使用虚拟环境而不浪费磁盘空间?

ran*_*123 12 python duplicates virtualenv

我看过很多视频,他们说我们应该为我们制作的每个 Python 项目都有一个新的虚拟环境。创建新环境时,我必须一遍又一遍地安装我的软件包(numpy、matplotlib 等)。我可以采取什么措施来防止这些环境使用大量计算机存储空间?

Mos*_*ael 11

嗯,你是对的,虚拟环境在某种程度上浪费了磁盘空间,因为它们旨在创建隔离的环境,这些环境几乎没有外部依赖项。

例如,如果您有 venvA 和 venvB,两者都可以使用相同版本的 pckgX,但是它们都不会与另一个共享它,并且您将在两个不同的环境中安装相同的 pckgX。然而,这并不是一个可怕的缺点,因为在大多数情况下,您使用 python 环境来拥有同一包不同版本然而,这并不是一个可怕的缺点,因为在大多数情况下,您使用 python 环境在计算机中

它让您在虚拟环境中修改或删除软件包时感到舒适,而不必担心可能会损坏其他软件包。

但是,我们可以通过使用缓存和其他方法来克服这个问题:

  • 在 pip 中,我们可以缓存下载内容~/.pip/cache,这样下次就不需要通过添加以下内容再次下载它们$HOME/.pip/pip.conf
[global]
download_cache = ~/.pip/cache
Run Code Online (Sandbox Code Playgroud)
  • 在 conda 中,您可以通过在系统上创建共享用户具有读写访问权限的目录来使用共享包缓存。

然后,对于每个有权访问的用户,使用.condarc以下条目编辑在其主目录中找到的文件,并指定该共享目录的完整路径:

pkgs_dirs:
    - /path/to/shared_directory
Run Code Online (Sandbox Code Playgroud)

Windows - C:\Users\用户名.condarc

macOS 和 Linux - /home/username/.condarc

通过运行验证包缓存conda info