安装我的 conda 包后在标准输出上显示自定义消息的最简单方法

Posted

技术标签:

【中文标题】安装我的 conda 包后在标准输出上显示自定义消息的最简单方法【英文标题】:Simplest way to display custom message on stdout upon install of my conda package 【发布时间】:2020-12-16 21:30:14 【问题描述】:

场景:

我们维护了一些公司内部使用的 conda 包 对于其中一些包,我们几乎不知道这些包的使用位置和方式(用户在其本地 python 安装中下载并安装这些包) 为了更好地支持使用这些包的用户和项目,我们想了解更多关于这些包的用法。

我想在用户安装软件包时在标准输出上显示一条消息:

Please let us know that you're using the xxx package: send an e-mail to ...@example.com, notify us on the teams channel, or update the wiki page ... directly. Thanks!

问题:

在成功安装软件包后,让conda install 显示自定义消息的最简单方法是什么?最好是在 Linux 和 Windows 上都可以运行的东西。

【问题讨论】:

【参考方案1】:

这可以通过post-link script in your recipe. 来完成,如文档中所述,您必须将消息写至$PREFIX/.messages.txt,而不是stdoutstderr

示例配方:

foobar-recipe/
├── meta.yaml
├── post-link.bat
└── post-link.sh
# meta.yaml
package:
  name: foobar
  version: 0.1
#!/bin/bash

# post-link.sh

cat << EOF >> $PREFIX/.messages.txt


*****************************
Thanks for installing foobar!
*****************************
EOF

(对于 Windows,实现post-link.bat。)

构建它:

$ conda build foobar-recipe

测试安装:

$ conda create -y -n test-foobar --use-local foobar
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /opt/miniconda/envs/test-foobar

  added / updated specs:
    - foobar


The following NEW packages will be INSTALLED:

  foobar             opt/miniconda/conda-bld/osx-64::foobar-0.1-0


Preparing transaction: done
Verifying transaction: done
Executing transaction: /

*****************************
Thanks for installing foobar!
*****************************

done
#
# To activate this environment, use
#
#     $ conda activate test-foobar
#
# To deactivate an active environment, use
#
#     $ conda deactivate

【讨论】:

以上是关于安装我的 conda 包后在标准输出上显示自定义消息的最简单方法的主要内容,如果未能解决你的问题,请参考以下文章

使用 conda 构建和安装本地或自定义 R 包

如何修复我的自定义 conda 包的 conda UnsatisfiableError?

如何在Docker文件中从自定义文件通道安装conda包?

通过自动化脚本在仪器 iOS 标准输出上自定义日志

AE显示,在行159无法执行脚本,无法转换Unicode字符怎么解决?

调用自定义PHP函数后在jquery Datatable中添加额外的列?