【问题标题】:Install VS Code Packages to work in Multiple Conda Environments安装 VS Code 包以在多个 Conda 环境中工作
【发布时间】:2021-05-13 01:22:21
【问题描述】:

我有几个使用不同环境的 Python 项目。这些环境使用 Conda 进行管理,效果很好,允许在每个项目的生产和开发/测试中使用相同的环境。

Conda yml 文件用于定义每个环境。

我想在开发过程中使用许多包,例如 autopep8。这些不需要在生产环境中,因此不包含在 yml 文件中。

如何安装 autopep8 和其他工具,以便它们可以在我在 VS Code 中加载的任何 Python 环境中工作?到目前为止,我不得不在切换环境时手动安装这些包。

【问题讨论】:

  • 在VS Code中,安装的python模块默认存放在当前使用的python环境的“\Lib\site-packages”中。因此,只有在当前使用的python环境中安装了所需的模块,才能识别该模块。参考:Python environments in VS Code.
  • 你看过setting default packages吗? conda env create 命令会尊重它们,当你有一个不需要它的环境时,你可以使用 --no-default-packages 标志。您可以仅在您的开发系统上将其设置在 .condarc 中。
  • 很棒的建议@merv - 我还没看过。

标签: python visual-studio-code conda


【解决方案1】:

默认包

在不违反环境隔离的情况下管理此问题的一种方法1 是使用Conda's default packages functionality。想法是仅在开发系统上在.condarc 中定义默认包(例如autopep8)。 conda env create 将尊重这些并将它们添加到您创建的每个环境中,因此您仍然可以保留一个仅描述生产版本基本要素的 YAML。

请注意 there are multiple options 用于存储此 .condarc 的位置,并且 Conda 可以以嵌套方式加载设置。如果您的用户的所有环境都归类为“开发”,那么定义默认包的合理位置将是~/.condarc。另外还有一个--no-default-packages 标志,可用于在不需要时禁用此类默认包安装。


[1] 虽然有一些方法可以包含来自 Conda 环境之外的包(例如,通过 PYTHONPATH),但这应该被视为不合标准,只能作为最后使用采取。 Conda 的设计假设环境完全隔离 - 违反可能导致未定义的行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    相关资源
    最近更新 更多