如何在环境中指定Python版本范围.yml文件?



在环境中指定允许的Python版本范围有意义吗?yml文件?我在阅读谷歌的Biq查询文档时得到了这个想法

Supported Python Versions
Python >= 3.7, < 3.11

如果这有意义,那么在环境中指定范围的正确语法是什么?yml文件?

建议:使用精确版本,而不是范围

虽然为Python指定版本范围在逻辑上没有什么不正确的,但它有定义一个大的解决方案空间的缺点,这可能导致缓慢的解决。对于实际环境,我建议通过次要版本(例如python=3.9)指定python的版本。

注意,这种行为主要适用于定义其他包的变体的中心包,如pythonr-basecudatoolkit。对于大多数其他包,影响没有那么大。

<标题>基准h1> 是一个用于基本数据分析的简单环境,无论是否指定Python版本。

so-py39.yaml

name: so-py39
channels:
- conda-forge
- nodefaults
dependencies:
- python ==3.9
- ipykernel
- numba
- pandas
- scikit-learn
- scipy

so-py3x.yaml

name: so-py3x
channels:
- conda-forge
- nodefaults
dependencies:
- python >=3.7,<4.0
- ipykernel
- numba
- pandas
- scikit-learn
- scipy

Conda

首先,我们可以使用常规的conda命令

命令

command time conda env create -dqn foo -f [file]
结果

Timing creating environment: so-py39.yaml
20.51 real        19.57 user         0.94 sys
20.73 real        19.84 user         0.97 sys
19.43 real        18.66 user         0.95 sys
19.22 real        18.36 user         0.92 sys
19.34 real        18.48 user         0.94 sys
19.08 real        18.16 user         0.94 sys
Timing creating environment: so-py3x.yaml
30.53 real        29.56 user         1.00 sys
29.21 real        28.21 user         1.08 sys
31.13 real        29.77 user         1.07 sys
29.93 real        28.46 user         0.99 sys
30.53 real        29.43 user         0.98 sys
28.60 real        27.68 user         1.03 sys

也就是说,求解具有范围的环境需要多花~10s(~50%)的时间。

我们还可以用Mamba测试解决环境问题。

命令

command time mamba env create -dqn foo -f [file]
结果

Timing creating environment: so-py39.yaml
3.30 real         2.79 user         0.49 sys
3.36 real         2.84 user         0.51 sys
3.25 real         2.74 user         0.49 sys
3.34 real         2.82 user         0.51 sys
3.29 real         2.78 user         0.51 sys
3.24 real         2.74 user         0.48 sys
Timing creating environment: so-py3x.yaml
3.27 real         2.79 user         0.47 sys
3.26 real         2.78 user         0.46 sys
3.33 real         2.83 user         0.48 sys
3.28 real         2.79 user         0.47 sys
3.31 real         2.81 user         0.49 sys
3.29 real         2.81 user         0.47 sys

这表明当使用Mamba时,求解时间的差异可以忽略不计。

最新更新