安装我的 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
,而不是stdout
或stderr
。
示例配方:
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 包的 conda UnsatisfiableError?