【问题标题】:Conda environment creation but exclude local development packages?Conda 环境创建但排除本地开发包?
【发布时间】:2022-01-01 13:05:48
【问题描述】:

我有一个用于创建环境的 environment.yml 文件:

name: blah

channels:
  - conda-forge

dependencies:
  - python=3.9
  - psychopg2

  # THESE ARE FOR LOCAL DEV ONLY
  - jupyter
  - ipykernel
  - folium

如果从生产环境中排除本地开发包,则 docker 映像大小会大大节省。但是在开发机器等上进行本地测试时需要这些包。

我目前的解决方案是维护一个单独的 environment_local.yml 以在本地运行,其中包括这些包,但在 docker 构建期间运行 environment.yml 将它们排除在外。但是文件有可能在共享依赖项中不同步。

有没有办法根据命令行标志从环境中排除软件包?或者,环境文件可以相互继承和扩展吗?

【问题讨论】:

  • 可能重复:stackoverflow.com/q/69548005/570918 如果您同意,请联系我。
  • 同意重复是的......
  • 虽然我认为线程给出了一个更简单的答案...stackoverflow.com/questions/42352841/…
  • 是的,另一个很复杂,因为用户想要保证 dev 和 prod envs 使用完全相同的包构建。这对专业工程师来说非常棒,但对于不太正式的环境来说就太过分了。

标签: python dependencies conda


【解决方案1】:

有一些How to update an existing Conda environment with a .yml file

我寻求的解决方案是:

环境.yml:

name: blah

channels:
  - conda-forge

dependencies:
  - python=3.9
  - psychopg2

environment.local.yml:

channels:
  - conda-forge
  - anaconda

dependencies:
  - folium
  - ipykernel
  - jupyter

为生产环境配置:

conda env create -f environment.yml

为本地环境配置:

conda env create -f environment.yml
conda env update -f environment.local.yml

【讨论】:

    猜你喜欢
    • 2014-01-22
    • 2019-05-03
    • 2015-06-27
    • 2011-07-14
    • 2022-11-08
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 2022-08-03
    相关资源
    最近更新 更多