Single "="在setup.py中的依赖版本说明符之后



我正在查看具有此语法的setup.py:

from setuptools import setup
setup(
...
tests_require=["h5py>=2.9=mpi*",
"mpi4py"]
)

我明白">="其中h5py应该至少是2.9版本,但我不能为我的生命理解=mpi*之后。它是说版本应该以某种方式匹配mpi版本,同时也至少是2.9?

我找不到任何解释指定python包版本的东西,也解释了单个=的使用。

我发现它使用的唯一其他地方是一些晦涩的博客文章,似乎暗示它有点像用别名导入包,这对我来说没有多大意义;还有mpi4py文档,其中包含一个命令行代码片段conda install -c conda-forge h5py=*=mpi* netcdf4=*=mpi*,但没有真正解释它。

简短回答

=mpi*限定符表示您要安装预编译的h5py,并支持MPI。

详细信息如果您查看h5py的文档,您将看到必须显式地使用或不使用MPI构建它的引用(例如,参见https://docs.h5py.org/en/latest/build.html)。

当您查看conda-forge下载文件(https://anaconda.org/conda-forge/h5py/files)时,您还会看到有一堆nompi变体和一堆mpi变体。

添加=mpi*触发使用MPI编译的版本,以便您获得并行MPI支持,而我怀疑默认版本将不支持MPI。

使用和不使用

的实验当我做conda install -c conda-forge h5py=3.7时,conda建议下载这个包:

h5py-3.7.0-nompi_py39hd4deaf1_100

但是当我做conda install =c conda-forget h5py=3.7=mpi*时,我期望...-mpi_py...包,但它只是失败了,因为我在Windows上,据我所知,Windows上不支持MPI。(这是有道理的,具有MPI的HPC集群运行在Linux上。)

最新更新