解决conda环境卡死
Solving conda environment stuck
我正在尝试使用以下命令安装 conda 环境:
conda env create -f devenv.yaml
我的 .yaml 文件是
name: myname
channels:
- conda-forge
- bioconda
dependencies:
# Package creation and environment management
- conda-build
# Automation control (command line interface, workflow and multi-process management)
- python-dotenv
- click
- snakemake-minimal
- joblib
- numba
# Workspace
- notebook
# Visualization
- plotly
- plotly-orca
- matplotlib
- seaborn
- shap
- openpyxl
- ipywidgets
- tensorboard
# Data manipulation
- numpy
- pandas
- pyarrow
# Functional style tools
- more-itertools
- toolz
# Machine learning
- scikit-learn
- imbalanced-learn
- scikit-image
- statsmodels
- catboost
- hyperopt
- tsfresh
# Deep learning
- pytorch
# code checking and formatting
- pylint
- black
- flake8
- mypy
# Python base
- python
- pip
- pip:
我尝试更新 conda,但没有用。它只是停留在解决环境问题上。
康达版本:4.11.0 c
OS:Ubuntu 18.04.5 LTS
完全相同的环境在我的 mac 上工作正常,但在那个服务器上却不行。可能是什么问题?我感谢任何建议。谢谢
这解决得很好 ( ),但确实是一个复杂的解决方法,主要是因为:
- 规格不足
- 缺乏模块化
规格不足
这个特定的环境规范最终安装了 300 多个包。并且没有一个受规范约束。这是一个需要解决的巨大 SAT 问题,Conda 将为此苦苦挣扎。 Mamba will help solve faster,但提供额外的约束可以大大减少解决方案 space。
至少指定一个 Python 版本 (major.minor),例如 python=3.9
。这是最有效的约束。
除此之外,对中央包(那些依赖于其他包的包)提出最低要求会有所帮助,例如最低 NumPy。
缺乏模块化
我假定名称“devenv”表示这是一个开发环境。所以,我知道有人想要立即使用所有这些工具。然而,Conda 环境激活非常简单,如今大多数 IDE 工具(Spyder、VSCode、Jupyter)都鼓励将基础设施与执行内核分离。对环境(强调复数)的组织方式和协同工作方式进行更深思熟虑,可以在拥有可持续且无痛的数据科学工作流程方面大有帮助。
手头的环境在我的书中有多个危险信号:
conda-build
应该在 base 并且只在 base
snakemake
应该在专用环境中
notebook
(即Jupyter)应在专用环境中,与nb_conda_kernels
共同安装;所有内核环境需要 ipykernel
我可能还会将 linting/formatting 包分开,但这不是什么大问题。真正的杀手是 snakemake
- 它只是一个庞大的基础设施,我强烈建议将其分开。
我正在尝试使用以下命令安装 conda 环境:
conda env create -f devenv.yaml
我的 .yaml 文件是
name: myname
channels:
- conda-forge
- bioconda
dependencies:
# Package creation and environment management
- conda-build
# Automation control (command line interface, workflow and multi-process management)
- python-dotenv
- click
- snakemake-minimal
- joblib
- numba
# Workspace
- notebook
# Visualization
- plotly
- plotly-orca
- matplotlib
- seaborn
- shap
- openpyxl
- ipywidgets
- tensorboard
# Data manipulation
- numpy
- pandas
- pyarrow
# Functional style tools
- more-itertools
- toolz
# Machine learning
- scikit-learn
- imbalanced-learn
- scikit-image
- statsmodels
- catboost
- hyperopt
- tsfresh
# Deep learning
- pytorch
# code checking and formatting
- pylint
- black
- flake8
- mypy
# Python base
- python
- pip
- pip:
我尝试更新 conda,但没有用。它只是停留在解决环境问题上。
康达版本:4.11.0 c OS:Ubuntu 18.04.5 LTS
完全相同的环境在我的 mac 上工作正常,但在那个服务器上却不行。可能是什么问题?我感谢任何建议。谢谢
这解决得很好 (
- 规格不足
- 缺乏模块化
规格不足
这个特定的环境规范最终安装了 300 多个包。并且没有一个受规范约束。这是一个需要解决的巨大 SAT 问题,Conda 将为此苦苦挣扎。 Mamba will help solve faster,但提供额外的约束可以大大减少解决方案 space。
至少指定一个 Python 版本 (major.minor),例如 python=3.9
。这是最有效的约束。
除此之外,对中央包(那些依赖于其他包的包)提出最低要求会有所帮助,例如最低 NumPy。
缺乏模块化
我假定名称“devenv”表示这是一个开发环境。所以,我知道有人想要立即使用所有这些工具。然而,Conda 环境激活非常简单,如今大多数 IDE 工具(Spyder、VSCode、Jupyter)都鼓励将基础设施与执行内核分离。对环境(强调复数)的组织方式和协同工作方式进行更深思熟虑,可以在拥有可持续且无痛的数据科学工作流程方面大有帮助。
手头的环境在我的书中有多个危险信号:
conda-build
应该在 base 并且只在 basesnakemake
应该在专用环境中notebook
(即Jupyter)应在专用环境中,与nb_conda_kernels
共同安装;所有内核环境需要ipykernel
我可能还会将 linting/formatting 包分开,但这不是什么大问题。真正的杀手是 snakemake
- 它只是一个庞大的基础设施,我强烈建议将其分开。