【问题标题】:How isolated is pip/pipenv in a conda environment?在 conda 环境中 pip/pipenv 的隔离程度如何?
【发布时间】:2019-05-11 22:04:19
【问题描述】:

期望 Conda 环境为 pip/pipenv 的使用提供完全隔离和遏制是否正确?

假设我创建并激活了一个 Conda 环境并将其命名为“pip-pip”,然后继续我的项目,该项目使用 pipenv,同时完全忽略了激活 Conda 环境时会发生这种情况的事实。

  1. 该 pipenv 项目的所有痕迹是否都包含在“pip-pip”中,或者是否存在溢出的可能性?
  2. 在“pip-pip”中使用 pip/pipenv 是否会对体验产生任何负面影响?

【问题讨论】:

  • 你为什么不试试呢?应该不到 10 分钟。
  • 涵盖所有边缘情况的计划是什么?
  • 第一步是识别边缘情况。由于他们不在问题中,我假设他们没有被识别。无论如何,如果您的环境是以从 Anaconda 复制 Python 的方式创建的(而不是指向它的指针),请指向 #1。 应该被覆盖。关于 #2. 取决于您对经验的理解。如果您在较慢的磁盘上创建了环境,那么可以;否则它不应该有任何区别。通常情况下(尤其是因为 #2.),这个问题会因为 Too Broad 而获得密切的投票。
  • 感谢您的评论!边缘情况的识别是我问题的要点:)。现在看来,只要你在环境中安装 pip,pip/pipenv 的所有效果都包含在内。由于个人经验有限,我可能没有认识到我什至不知道如何使用 Google 的众所周知的问题或用例,所以在它之前知道可能出了什么问题会很高兴做。或者,理想情况下,答案是“在环境被破坏之后 - 没有留下任何痕迹,并且 pip/pipenv 在 conda 环境中运行时没有看到任何区别”。

标签: python pip conda pipenv


【解决方案1】:

只要你的 shell 和环境变量配置正确,这种安排应该可以正常工作。

如果您尝试在未激活“Pip-pip”Conda 环境的情况下激活 Pipenv,您可能会遇到损坏或其他不可预知的行为,因为 Pipenv 是与一个 Python 一起安装的,并且正在与另一个 Python 一起运行。破坏的程度取决于 Pipenv 的实现细节。

作为一般规则,应该可以任意嵌套这样的“环境”程序,只要它们设计良好,并且只要您按照最初安装的顺序激活环境链。这是否会对您的体验产生负面影响取决于您对烦恼的容忍度。

但是,默认情况下 Pipenv 在全局位置创建虚拟环境。我不确定那个位置是什么,但你可能最终会安装 Pipenv 环境,这些环境依赖于不同的 Python 版本。我认为,就您的问题而言,这可能构成“溢出”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 2020-07-17
    • 2018-01-31
    相关资源
    最近更新 更多