【问题标题】:Enthought style virtualenv in AnacondaAnaconda 中的思想风格 virtualenv
【发布时间】:2015-12-13 13:47:52
【问题描述】:

我熟悉使用 Enthought Canopy 的 venv 命令创建 virtualenv。我喜欢它的其中一个功能是--system-site-packages 选项,它允许我将所有系统库链接到新环境。因此允许我创建“光”环境。这在创建多个环境时可以节省大量磁盘空间。我正在尝试使用conda 找到类似的选项,但在我看来它没有提供这样的选项。有没有办法用 anaconda 创建像虚拟环境一样的树冠?

【问题讨论】:

    标签: python virtualenv anaconda canopy conda


    【解决方案1】:

    conda 的环境与系统相互隔离。通常你不应该尝试从不同的环境访问包。这违背了虚拟环境的全部目的。

    也就是说,conda 的环境在设计上是轻量级的。如果您有两个环境使用相同的解释器和相同版本的包,那么您的硬盘上将只存在一个物理包。各个环境仅链接到物理包。

    【讨论】:

    • 我用 conda 创建了一个 virtualenv,指定了要安装的包 numpy、matplotlib、scipy、pandas 和 basemap。新环境的目录大小为572MB!难道我做错了什么?我已经在主环境中安装了这些。我跑了:conda create -n test numpy matplotlib pandas scipy basemap.
    • conda 使用硬链接。所以计算总文件大小是很棘手的。 IIRC 所有环境都默认为轻量级,但我不再那么确定了。
    • 我注意到在创建和删除阶段conda 谈到了链接和取消链接,所以你所说的也许是有道理的。但是,当我尝试在根安装和虚拟环境之间比较 numpy 中文件的“inode”(ls -lia)时,它们不匹配。我不知道该怎么做。
    • 只有当两个包都来自相同的 python 版本和相同的包版本时,链接才会起作用。但它们是,它们绝对应该是同一个物理文件。
    猜你喜欢
    • 2014-11-18
    • 2014-07-11
    • 1970-01-01
    • 2023-04-07
    • 2017-08-19
    • 2021-01-19
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多