乐于分享
好东西不私藏

TACE安装教程:从踩坑到成功运行(Linux集群版)

TACE安装教程:从踩坑到成功运行(Linux集群版)
安装一个软件,肯定是从手册开始,
pip install . 
报错gcc版本太低,用conda安装gcc gfortarn cmake等,添加环境变量等进行解决了,具体解决方案如下:
我参考了:软件安装小技巧:还在为gcc版本太旧安装不了软件而困扰吗?别担心,让conda来帮你升级
这篇文章给了我启发。

TACE安装教程:从踩坑到成功运行(Linux集群版)

一、TACE简介

TACE(Tensorial Atomic Cluster Expansion)是一种基于等变神经网络(Equivariant Neural Network)的原子间势函数框架,支持:

  • 能量预测
  • 力预测
  • 应力预测
  • 分子动力学模拟
  • 多精度训练
  • GPU加速

其主要依赖包括:

  • PyTorch
  • PyTorch Geometric
  • ASE
  • NumPy
  • SciPy
  • Pandas
  • Matscipy
  • E3NN

由于涉及大量科学计算库,因此在Linux服务器上安装时经常会遇到编译器和依赖问题。


二、推荐环境

安装anaconda3anaconda安装教程我之前写过,如下:

anaconda安装以及相关错误和解决办法

Conda版本与python版本的对应关系 

https://www.anaconda.com/docs/getting-started/anaconda/release-notes

建议使用Conda环境:

#安装anaconda3# 我用的conda 版本 bash Anaconda3-2024.10-1-Linux-86_64.shconda create -n tace python=3.12conda activate tace

查看Python版本:

python --version

输出:

Python 3.12.13

三、安装基础科学计算库

优先使用conda-forge:

conda install -c conda-forge \numpy \scipy \pandas \ase \openblas \cmake \meson \ninja

验证:

python - << EOFimport numpyimport scipyimport pandasimport aseprint("NumPy :", numpy.__version__)print("SciPy :", scipy.__version__)print("Pandas:", pandas.__version__)EOF

输出:

NumPy : 2.4.6SciPy : 1.17.1Pandas: 3.0.3

四、安装编译器工具链

许多用户会直接使用系统编译器:

which gcc

输出:

/usr/bin/gcc

这通常是错误的。

建议安装Conda工具链:

conda install -c conda-forge \gcc_linux-64 \gxx_linux-64 \gfortran_linux-64

安装完成后:

ls $CONDA_PREFIX/bin/*gcc*ls $CONDA_PREFIX/bin/*gfortran*

应看到:

$ ls $CONDA_PREFIX/bin/*gcc*/home/xue1/anaconda3/envs/tace/bin/x86_64-conda_cos6-linux-gnu-gcc/home/xue1/anaconda3/envs/tace/bin/x86_64-conda_cos6-linux-gnu-gcc-ar/home/xue1/anaconda3/envs/tace/bin/x86_64-conda_cos6-linux-gnu-gcc-nm/home/xue1/anaconda3/envs/tace/bin/x86_64-conda_cos6-linux-gnu-gcc-ranlib/home/xue1/anaconda3/envs/tace/bin/x86_64-conda-linux-gnu-gcc/home/xue1/anaconda3/envs/tace/bin/x86_64-conda-linux-gnu-gcc-ar/home/xue1/anaconda3/envs/tace/bin/x86_64-conda-linux-gnu-gcc-nm/home/xue1/anaconda3/envs/tace/bin/x86_64-conda-linux-gnu-gcc-ranlib$ ls $CONDA_PREFIX/bin/*gfortran*/home/xue1/anaconda3/envs/tace/bin/x86_64-conda_cos6-linux-gnu-gfortran/home/xue1/anaconda3/envs/tace/bin/x86_64-conda-linux-gnu-gfortran

五、配置编译器环境变量

必须保证:

  • gcc
  • g++
  • gfortran

来自同一个工具链。

配置:

export CC=$CONDA_PREFIX/bin/x86_64-conda-linux-gnu-gccexport CXX=$CONDA_PREFIX/bin/x86_64-conda-linux-gnu-g++export FC=$CONDA_PREFIX/bin/x86_64-conda-linux-gnu-gfortranexport F77=$FC

检查:

echo$CCecho$CXXecho$FC

六、升级CMake

很多服务器自带:

/usr/bin/cmake

版本:

2.8.x

过于陈旧。

安装:

conda install -c conda-forge cmake

检查:

which cmake~/anaconda3/envs/tace/bin/cmake$ cmake --versioncmake version 4.3.3CMake suite maintained and supported by Kitware (kitware.com/cmake).

推荐版本:

4.x#我的是4.3.3

七、常见报错与解决方案

1. OpenBLAS not found

错误:

ERROR: Dependency "OpenBLAS" not found

解决:

conda install -c conda-forge openblas

OpenBLAS 简要解析

  1. 定位:开源高性能线性代数库,BLAS(基础线性代数子程序)开源实现,兼容标准BLAS、LAPACK接口,替代商业MKL。
  2. 核心用途:矩阵/向量运算(矩阵乘法、向量点积、线性方程组求解),是Python(Numpy)、MATLAB、深度学习框架底层依赖。
  3. 优势
    • 跨CPU优化:针对x86、ARM、龙芯等架构做汇编级优化,自动检测CPU指令集(AVX、NEON)提速;
    • 多线程并行:内置多线程,大矩阵运算多核加速;
    • 开源免费,无版权限制,轻量化易编译部署。
  4. 短板:相比Intel MKL,针对Intel特有平台调优略弱;多线程调度在极小矩阵时存在开销。
  5. 典型场景:科学计算、机器学习训练、数值仿真、服务器/嵌入式数值运算。

2. 使用系统gfortran

错误日志:

Fortran compiler:gfortran 4.8.5#我的机群$ gfortran --versionGNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)Copyright © 2015 Free Software Foundation, Inc.GNU Fortran 在法律允许的范围内没有任何担保。您可以在遵循 GNU 通用公共许可证的前提下分发 GNU Fortran 的副本。有关事宜的详情请参考名为 COPYING 的文件

解决:

conda install -c conda-forge gfortran_linux-64

并配置:

export FC=$CONDA_PREFIX/bin/x86_64-conda-linux-gnu-gfortran

3. Pandas编译失败

典型错误:

Overflow checking not detected;please try a newer compiler

原因:

pip尝试源码编译Pandas。

解决:

不要重新编译Pandas。

直接:

conda install pandas

4. pip build isolation问题

很多用户执行:

pip install .

此时pip会创建临时构建环境:

/tmp/pip-build-env-xxxx/

重新编译:

  • pandas
  • scipy
  • numpy

从而导致安装失败。

推荐:

pip install -e . --no-build-isolation

或者:

pip install . --no-build-isolation

八、安装TACE

进入源码目录:

cd tace-main

安装:

pip install -e . --no-build-isolation

成功后检查:

pip show TACE

测试:

tace-train --help
$ tace-train --helpTraceback (most recent call last):  File "/home/xue1/anaconda3/envs/tace/bin/tace-train", line 3, in <module>    from tace.scripts.train import main  File "/home/xue1/apps/tace-main/tace/scripts/train.py", line 6, in <module>    import yamlModuleNotFoundError: No module named 'yaml'

或者:

python -c "import tace"

若无报错,则安装成功。


TACE安装后 tace-train 报缺库怎么办?

检查:

python - << EOFmods = ["torch_geometric","lightning","matscipy","e3nn","configargparse","lmdb","huggingface_hub"]for m in mods:    try:        __import__(m)print("OK",m)    except:print("FAIL",m)EOF

然后补装:

pip install \lightning \torch_geometric \matscipy \e3nn \configargparse \lmdb \huggingface_hub

最后检查:

OK    torchOK    torch_geometricOK    lightningOK    omegaconfOK    hydraOK    matscipyOK    aseOK    e3nnOK    scipyOK    configargparseOK    pandasOK    lmdbOK    huggingface_hub

这是你目前安装过程中遇到的最后一个大坑。

安装完这些依赖后,再把:

tace-train --help

运行这个需要tace.yaml文件,example中有提供。

至此安装完成


九、总结

TACE安装过程中最常见的问题包括:

  1. 系统gcc版本过低
  2. gfortran未安装
  3. OpenBLAS缺失
  4. CMake版本过低
  5. pip build isolation导致重新编译SciPy和Pandas
  6. Conda工具链与系统工具链混用

推荐原则:

  • 所有科学计算依赖优先使用conda-forge安装;
  • gcc、g++、gfortran必须来自同一工具链;
  • 尽量避免源码编译SciPy和Pandas;
  • 安装TACE时优先使用:
pip install -e . --no-build-isolation

这样可以避免90%以上的安装问题。