如何让conda激活指定hep环境时自动执行脚本?
解决conda激活hep环境时自动source自定义ROOT包的方法
步骤1:定位hep环境的绝对路径
先激活你的hep环境,然后打印环境路径:
conda activate hep echo $CONDA_PREFIX
输出结果类似 /home/yourname/miniconda3/envs/hep,这就是后续操作的基础路径。
步骤2:创建conda激活钩子目录
在hep环境下创建激活时自动执行脚本的目录:
mkdir -p $CONDA_PREFIX/etc/conda/activate.d
步骤3:编写自动source的脚本
在上述目录下新建一个shell脚本文件(比如root_setup.sh):
touch $CONDA_PREFIX/etc/conda/activate.d/root_setup.sh
编辑这个文件,添加你手动source的ROOT setup脚本路径,示例:
# 替换成你实际编译的ROOT目录下的thisroot.sh路径 source /home/yourname/root-master/build/bin/thisroot.sh
(可选)添加环境退出时的清理脚本
为了避免ROOT的环境变量影响其他conda环境,可以在退出hep时自动清理相关变量:
- 创建退出钩子目录:
mkdir -p $CONDA_PREFIX/etc/conda/deactivate.d
- 新建清理脚本
root_cleanup.sh:
touch $CONDA_PREFIX/etc/conda/deactivate.d/root_cleanup.sh
- 编辑脚本,添加清理命令(对应
thisroot.sh设置的环境变量):
unset ROOTSYS unset ROOT_INCLUDE_PATH unset ROOT_LIBRARY_PATH # 根据实际情况补充其他被thisroot.sh修改的变量,比如PYTHONPATH、LD_LIBRARY_PATH等
测试验证
退出hep环境后重新激活:
conda deactivate conda activate hep
直接执行python -c "import ROOT",无需手动source即可正常导入。
内容的提问来源于stack exchange,提问作者Lost_Soul
相关产品推荐
相关产品推荐

