gpt4 book ai didi

mercurial - Conda 和 conda-forge 安装所有 conda 环境中可用的命令

转载 作者:行者123 更新时间:2023-12-01 05:50:00 29 4
gpt4 key购买 nike

我想在一个特定的 conda 环境中安装带有 conda 的程序,并能够使用来自所有 conda 环境的相关命令。

我的目标是让学生在任何平台(尤其是 Windows)上安装 Mercurial(加上一些 Mercurial 扩展和相关实用程序,如 Meld 和 TortoiseHg)一个简单的命令 (或几个简单的命令),当然没有编译。

当然是 hg命令应该在任何 conda 环境(Windows 上的 anaconda 提示符)的终端中可用。 Mercurial 包不能安装在基础环境中,因为 Mercurial 在 Python 2.7 中仍然可以更好地工作(无论如何,它不会是干净的)。

现在 Mercurial 和我们需要的扩展可以安装在所有平台上,例如:

conda create -n py27_mercurial -c conda-forge python=2.7 mercurial dulwich ipaddress
conda activate py27_mercurial
pip install hg-evolve hg-git

稍微使用 conda-forge 和 conda 元包,用一个非常简单的命令就可以做到这一点。此外,为 Meld 和 TortoiseHg 创建 conda 包应该不难。

从这个阶段开始, hg激活环境后即可使用命令(安装其他 Mercurial 扩展非常简单)。要使其在其他环境(以及基础环境)中可用,需要附加包含 hg 的目录的路径。到环境变量 PATH 或在 Unix 上创建符号链接(symbolic link)(我对 Windows 的了解不够,无法知道类似的东西是否可行)。两种解决方案都不是直截了当的,而且命令也不是平台独立的。

我没有在 conda 中找到执行此类操作的命令,但有时 conda 专家能够做令人印象深刻的事情!这个问题的优雅解决方案是什么?

在某个地方(在 Anaconda 启动器中?)为图形应用程序(Meld 和 TortoiseHg)创建图标也很好。是否可以?

编辑: conda 应用

我发现有一种方法可以在 meta.yaml 文件中指定一个包是一个应用程序: https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#app-section

它可能有助于解决问题。

在基于 bash 函数的第一个答案后进行编辑:

当然,我正在寻找一种解决方案,该解决方案涉及用户的非常小的工作(和理解)以及跨平台命令。

请注意,对于 Linux 和 Bash,可以这样做:
CONDA_APP_DIR=$HOME/.local/bin/bin-conda-app/
mkdir -p $CONDA_APP_DIR
echo -e "\nexport PATH=\$PATH:$CONDA_APP_DIR\n" >> ~/.bashrc
ln -s $(which hg) $CONDA_APP_DIR/hg

无需每次激活/停用环境 hg用来...

当然,这种依赖于系统和外壳的解决方案并不令人满意。应该可以使用类似 conda 的跨平台命令(参见 https://github.com/conda/conda/issues/8556 )来执行此类操作,例如
conda config --add channels conda-forge
conda install conda-app
conda-app install mercurial

现在,我只需要执行 conda-app 🙂

最佳答案

人们总是可以创建一个 shell 函数/别名并将其放入 shell 的运行时配置文件中。例如,对于您的用例,我将在 ~/.bashrc 中添加以下内容:

hg() {
(conda activate py27_mercurial
command hg "$@"
_hg_exit_code=$?
conda deactivate
exit $_hg_exit_code)
}

然后,无论您在哪个环境中,您始终从安装它的环境中运行 hg。为了确保在新 session 中为您的 shell 加载此功能,您可以随时查看以下输出: type -a hg
我为所有工具(有些是自定义编译的)执行此一次性设置,并且每个工具都有一个别名/shell 函数。这样我就可以愉快地切换黑白环境而不必担心太多。

关于mercurial - Conda 和 conda-forge 安装所有 conda 环境中可用的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55657360/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com