Conda虚拟环境安装Heasoftpy报KeyError:'PFILES'错误求解
故障根因
核心报错KeyError: 'PFILES'是因为当前执行安装命令的Shell会话未加载HEAsoft的环境变量。PFILES是HEAsoft用来索引任务参数文件路径的必填环境变量,heasoftpy生成各任务的Python包装器时,必须读取该变量定位对应任务的参数定义,找不到就会直接抛出键错误。
你虽然已经完成HEAsoft的安装初始化,但初始化操作仅在执行过初始化脚本的Shell会话生效,切换到Conda虚拟环境后的新会话没有重新执行HEAsoft初始化,就会出现这个问题。
解决操作
- 先激活用于安装heasoftpy的Conda虚拟环境:
conda activate heasoft - 在当前已激活虚拟环境的会话中,重新加载HEAsoft初始化脚本,从你的日志看HEAsoft安装路径为
/home/jason/HEAsoft-6.30/,根据你使用的Shell选择对应命令:- Bash用户执行:
source /home/jason/HEAsoft-6.30/headas-init.sh - Csh/Tcsh用户执行:
source /home/jason/HEAsoft-6.30/headas-init.csh
- Bash用户执行:
- 验证环境变量是否加载成功,执行以下命令:
echo $PFILES
命令输出一串由冒号、分号分隔的目录路径,就说明环境变量配置正常。 - 回到heasoftpy源码目录,重新执行构建安装命令:
python setup.py build && python setup.py install
注意事项
- 每次新开终端、切换Conda环境后,如果要使用heasoftpy,都需要先执行一次HEAsoft初始化脚本。嫌重复操作麻烦,可以把source初始化脚本的命令写到Shell配置文件(比如
~/.bashrc)或者Conda环境的激活钩子中,实现进入环境自动加载。 - 日志中出现的
SetuptoolsDeprecationWarning是setuptools版本的弃用提示,不影响安装流程,无需额外处理。
内容的提问来源于stack exchange,提问作者mengjian
相关产品推荐
相关产品推荐

