Skip to main content

一个简单的库,用于创建用于跨平台共享的 Conda 环境规范的缩小或宽松版本。

项目描述

康达缩小

一个简单的库,用于创建用于跨平台共享的 Conda 环境规范的缩小或宽松版本。

为什么选择 Conda 缩小?

我在尝试使用另一个团队的项目时遇到问题并不少见。尽管项目有很好的文档记录并包含一个environment.yaml用于设置环境的文件,但在 Windows 和 Unix 之间移动使这变得非常困难。有几个因素在起作用:

  • 适用于 Unix 和 Windows 的 Conda 包可以有不同的内部版本号
  • 有时,为一个操作系统构建的软件包具有不可用的子子版本(例如“0.11.3.1”)
  • 较低级别的依赖关系通常在操作系统版本之间有所不同
  • 通常环境规范只是“按原样”导出,而不考虑实际需要哪些包

Conda 缩小是做什么的?

Conda Minify 提供了一种简单的方法来生成 Conda 规范 YAML 文件,而该文件仅具有近似重现环境所需的最低要求。Conda 可以找出依赖项的其余详细信息。例如,如果您有一个包含 Pandas 和 Matplotib 的环境;共享环境实际上只需要指定 Pandas 和 Matplotib 及其版本。

安装

这些是推荐的安装方法。值得注意的是,无需安装即可使用相同的 CLI 命令将 Conda Minify 作为脚本模块运行;请参阅使用部分

通过康达

conda install conda-minify -c jamespreed

通过画中画

pip install conda-minify

用法

Conda Minify 有两种减少环境要求的主要方法:minifyrelax.

  • minify- 共享环境的主要工具。这会分析整个环境的依赖关系图,并且只导出“顶级”包的需求。即,如果您使用 , 创建了一个环境conda create -n myenv pandas,那么minify将仅pandas作为规范返回。
  • relax- “放松”版本要求的辅助工具。这允许您将确切的版本规范转换为只有主要、次要或根本没有。即scipy=1.3.2可以成为scipy=1.3.*,或scipy=1.*或只是scipy。其他选项允许固定和覆盖版本。

命令行界面

安装后,可以使用以下命令调用 CLI:

conda-minify [--name env_name] [--relax] [--how method] [-f filename] [options ...]
  • --name env_name- 环境导出的名称,如果未通过,则使用当前环境。
  • --relax- 切换到使用上述relax方法。
  • --how method- 用于创建版本字符串的方法。
  • -f filename- (可选)将缩小后的规格写入屏幕,filename否则会打印到屏幕上。
  • minify运行该工具以查看完整的选项列表relax

通过 Python 的 CLI

Conda Minify 设计为在您的基本 Conda 安装被锁定并禁止安装新软件包的情况下作为脚本模块运行。或者因为你不想把新东西扔到你干净的 Anaconda 基础环境中(我理解)。

使用 git 克隆 repo(或下载 zip 并解压缩),移动到 repo 的顶部文件夹,然后使用 Python 运行:

$> git clone https://github.com/jamespreed/conda-minify.git
$> cd conda-minify
$> pythnon -m conda_minify <name> <minify | relax> [-f filename] [options ...]

Python API

为了以编程方式运行,Python API 提供了一种相对简单的方法。

from conda_minify import CondaEnvironment

# create a CondaEnvironment object for the myenv environment.
cenv = CondaEnvironment(name='myenv')
# build the dependency graph
cenv.build_graph()
# write out the minified version to a file
cenv.minify_requirements(
    export_path='myenv.yaml',
    include=['python'],  # include python so we can set the version
    how='minor'          # relax version requirements to minor releases
)

# OR export the relaxed requirements
cenv.relax_requirements(
    export_path='myenv.yaml',
    how='none',                   # add no versions
    pin=['pandas'],               # except pin the version of pandas i.e. 0.25.3
    override={'python': 'minor'}  # and use the minor version of python i.e. 3.7.*
)

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

conda-minify-0.1.2.tar.gz (13.9 kB 查看哈希)

已上传 source

内置分布

conda_minify-0.1.2-py3-none-any.whl (14.4 kB 查看哈希

已上传 py3