计算化学公社

标题: Mokit调用PySCF失败 [打印本页]

作者
Author:
chunlinxxx    时间: 2025-8-24 14:53
标题: Mokit调用PySCF失败
本帖最后由 chunlinxxx 于 2025-8-25 05:05 编辑

各位老师好!


我在使用 MOKIT(版本 1.2.7rc9, 2025-Jul-24)运行 CASSCF 测试计算时,遇到了一个关于 Python 模块的错误。环境已经安装 PySCF 2.9.0,并且 MOKIT 可以正常 import,但内部调用 Python 执行脚本时失败。

环境信息:

$ python --version
Python 3.9.12

$ python -c "import pyscf; import mokit; print(pyscf.__version__, mokit.__file__)"
2.9.0 /orcd/pool/003/*_shared/*-data/mokit3/mokit/__init__.py

$ echo $MOKIT_ROOT
/orcd/pool/003/*_shared/*-data/mokit3
$ echo $PATH
...$MOKIT_ROOT/bin:...
$ echo $PYTHONPATH
$MOKIT_ROOT:...


加载的模块:

module purge
module load deprecated-modules  
module load gcc/12.2.0-x86_64
module load python/3.10.8-x86_64
module load anaconda3/2022.05-x86_64
module load intel/2024.2.1


运行命令:

./AutoMR.py --method casscf --basis cc-pVDZ ...


错误输出(部分):

Enter subroutine get_paired_LMO...
chem_core=1, ecp_core=0, Nskip_UNO=0
Two sets of MOs, ist=1, invoke UNO associated rotation.
$python 00-h2o_cc-pVDZ_1.5_uhf_uno_asrot.py >00-h2o_cc-pVDZ_1.5_uhf_uno_asrot.out 2>&1

ERROR in subroutine submit_pyscf_job: PySCF job failed. Please open
file 00-h2o_cc-pVDZ_1.5_uhf_uno_asrot.out and check.


已确认:

在命令行直接执行 Python 脚本可以成功:

python 00-h2o_cc-pVDZ_1.5_uhf_uno_asrot.py


内部调用 $python ... 时失败。

$python 是 MOKIT 在日志中标记的,不是 shell 命令。

疑问:

为什么 MOKIT 内部执行 Python 会找不到 mokit?

如何让 MOKIT 使用我通过 module load anaconda3/... 加载的 Python 环境?

有没有办法在不影响其他程序的前提下,确保内部 $python 调用与 shell 中 python 相同?

谢谢大家了!


作者
Author:
zjxitcc    时间: 2025-8-24 15:07
运行命令:

./AutoMR.py --method casscf --basis cc-pVDZ ...

MOKIT没有提供AutoMR.py脚本,也没有这种运行方式,我不知道你这些是哪来的。MOKIT输入文件是gjf文件,运行方式是例如
  1. automr 00-h2o_cc-pVDZ_1.5.gjf >00-h2o_cc-pVDZ_1.5.out 2>&1
复制代码
这在你上传的mokit.sh脚本里也是这么写的,我不知道你为什么冒出一个AutoMR.py,无关内容、AI创作内容等等 不要发在帖子里。如果是你们集群管理员自己搞的,那最好是问你们管理员,这就与MOKIT没啥关系了。

你需要展示/交待你是采用 方式几 安装的MOKIT,例如中文README提到了4种安装方式。若采用方式2/3/4,你需要展示你的MOKIT环境变量是怎么写的、有没写对(其实自己检查也可以,但从我的经验来看,即使对照README文档,还是有很多新手会写错,所以只能发出来 让大家帮忙检查)。

作者
Author:
hebrewsnabla    时间: 2025-8-24 15:11
你在运行
$ python -c "import pyscf; import mokit; print(pyscf.__version__, mokit.__file__)"
2.9.0 /orcd/pool/003/gilliard_shared/cldeng-data/mokit3/mokit/__init__.py
在命令行直接执行 Python 脚本可以成功:

python 00-h2o_cc-pVDZ_1.5_uhf_uno_asrot.py

的时候,在命令行加载了和运行mokit时同样的python环境吗,如 module load anaconda3/2022.05-x86_64。

你的 mokit.sh 里面load的东西和你贴子描述的不完全一样,如没有load python/3.10,当然这通常是不必要的。

如果你认为是一致的,请展示命令行下和运行mokit的脚本内的which python的输出。
作者
Author:
chunlinxxx    时间: 2025-8-25 05:29
本帖最后由 chunlinxxx 于 2025-8-25 05:50 编辑
zjxitcc 发表于 2025-8-24 15:07
MOKIT没有提供AutoMR.py脚本,也没有这种运行方式,我不知道你这些是哪来的。MOKIT输入文件是gjf文件,运 ...

老师好!抱歉提取了AI信息。

我是按照方式3装的,选得是centos7_conda_py39安装包。下面是环境变量设置;

export MOKIT_ROOT=/orcd/pool/003/**_shared/my-data/mokit3
export PATH=$MOKIT_ROOT/bin:$PATH
export PYTHONPATH=$MOKIT_ROOT:$PYTHONPATH
export LD_LIBRARY_PATH=$MOKIT_ROOT/mokit/lib:$LD_LIBRARY_PATH
export GMS=/orcd/pool/003/**_shared/my-data/gamess/rungms

我觉得冲突点在于我当时是使用naconda3/2022.05-x86_64安装的Pyscf,默认 Python 不是你想用的 Anaconda 环境,而是系统自带的 Python(3.9.12)老师您的意见呢? 非常感谢!
作者
Author:
chunlinxxx    时间: 2025-8-25 06:04
本帖最后由 chunlinxxx 于 2025-8-25 07:53 编辑
hebrewsnabla 发表于 2025-8-24 15:11
你在运行

谢谢老师回复!我的操作如下:

[*@orcd-login001 XX]$ module load anaconda3/2022.05-x86_64
[*@orcd-login001 XX]$ which python
/nfs/software001/home/software-r8-x86_64/spack-20230328/opt/spack/linux-rocky8-x86_64/gcc-8.5.0/anaconda3-2022.05-auh4o3tsby7ze6q6v3stn2hhvvnpoy5f/bin/python
[*@orcd-login001 XX]$ python --version
Python 3.9.12
[*@orcd-login001 XX]$ python -c "import pyscf; import mokit; print(pyscf.__version__, mokit.__file__)"
2.9.0 /orcd/pool/003/**_shared/my-data/mokit3/mokit/__init__.py


作者
Author:
hebrewsnabla    时间: 2025-8-25 13:36
本帖最后由 hebrewsnabla 于 2025-8-25 13:42 编辑
chunlinxxx 发表于 2025-8-25 06:04
谢谢老师回复!我的操作如下:

[*@orcd-login001 XX]$ module load anaconda3/2022.05-x86_64

我说了,展示运行mokit的脚本内的which python的输出。具体来说,就是在提交脚本内load anaconda之后,加一行 which python,并展示脚本的输出
作者
Author:
chunlinxxx    时间: 2025-8-25 20:43
本帖最后由 chunlinxxx 于 2025-8-25 20:44 编辑
hebrewsnabla 发表于 2025-8-25 13:36
我说了,展示运行mokit的脚本内的which python的输出。具体来说,就是在提交脚本内load anaconda之后,加 ...

哦,老师输出的是/nfs/software001/home/software-r8-x86_64/spack-20230328/opt/spack/linux-rocky8-x86_64/gcc-8.5.0/anaconda3-2022.05-auh4o3tsby7ze6q6v3stn2hhvvnpoy5f/bin/python

新出现一个新问题automr: error while loading shared libraries: libgfortran.so.3: cannot open shared object file: No such file or directory

作者
Author:
hebrewsnabla    时间: 2025-8-25 21:49
chunlinxxx 发表于 2025-8-25 20:43
哦,老师输出的是/nfs/software001/home/software-r8-x86_64/spack-20230328/opt/spack/linux-rocky8-x86 ...

在脚本里面export 一下mokit的环境变量。
作者
Author:
hebrewsnabla    时间: 2025-8-25 21:51
chunlinxxx 发表于 2025-8-25 05:29
老师好!抱歉提取了AI信息。

我是按照方式3装的,选得是centos7_conda_py39安装包。下面是环境变量设 ...

不建议采用方式3. 既然有conda,首选的是方式1.
作者
Author:
chunlinxxx    时间: 2025-8-25 23:07
hebrewsnabla 发表于 2025-8-25 21:51
不建议采用方式3. 既然有conda,首选的是方式1.

非常感谢老师指点!我用conda安装成功运行测试例子。

Enter subroutine do_cas...
CASSCF(4e,4o) using program pyscf
doubly_occ=3, nvir=17, Root=0, Xmult=1, RI=F
No. of active alpha/beta e = 2/2
$python 00-h2o_cc-pVDZ_1.5_uhf_gvb4_CASSCF.py >00-h2o_cc-pVDZ_1.5_uhf_gvb4_CASSCF.out 2>&1

E(CASCI)  =       -75.90802086 a.u.
E(CASSCF) =       -75.90823046 a.u.
----------------------- Radical index -----------------------
biradical character y0 = n_LUNO =  0.165
tetraradical character y1 = n_{LUNO+1} =  0.139
Yamaguchi's unpaired electrons  (sum_n n(2-n)      ):  1.121
Head-Gordon's unpaired electrons(sum_n min(n,(2-n))):  0.607
Head-Gordon's unpaired electrons(sum_n (n(2-n))^2  ):  0.315
-------------------------------------------------------------
Leave subroutine do_cas at Mon Aug 25 11:05:05 2025

Normal termination of AutoMR at Mon Aug 25 11:05:05 2025





欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3