This page looks best with JavaScript enabled

ALPS的安装与使用

 ·  ☕ 3 min read  ·  🔮 Yu · 👀... views
This paper is incomplete. I still work for it recently. 20210525

主要是win10 下使用conda安装python并成功运行模拟的tips记录

使用python可以将结果直接绘图,并且官方许多教程也是基于python来说明的

使用python运行alps可以使用conda或者编译安装

因为alps整体依赖软件版本比较outdated,antiquated,所以建议在cmd中而不是powershell中使用

安装

使用conda安装基于python的alps有许多问题,甚至直接使用官方docker也有问题

其中依赖hdf5的版本有一些问题

可能需要1.8版本的hdf5,见alpscore[ALPS-users] HDF5 runtime error when using mps_optim application with ‘optimization’ parameter set ‘singlesite’ on CentOS Linux

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# 确保已安装conda
# alps使用古老的python2,也导致了许多安装和运行上的问题
# 创建使用py2.7的环境
conda create -n py27 python=2.7 
# 启动环境
conda activate py27
# 安装alps
conda install -c conda-forge alps
# 解决hdf5的问题
conda uninstall hdf5
conda install hdf5=1.8.18
# 再安装alps,不知道是否必要,反正我干了
conda install -c conda-forge alps

也许这样也可以,且更简单一些

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 确保已安装conda
# alps使用古老的python2,也导致了许多安装和运行上的问题
# 创建使用py2.7的环境
conda create -n py27 python=2.7 
# 启动环境
conda activate py27
# 安装alps
# 解决hdf5的问题
conda uninstall hdf5
conda install hdf5=1.8.18
# 安装alps
conda install -c conda-forge alps

依次运行这几条命令,有时会出错,重复运行即可(在此之前需要解决conda代理或者换源的问题❤)

总之我们的目的就是安装alps,并保证hdf5包的版本为1.8.18

conda deactivate py27 # 退出虚拟环境


运行

一些小问题:

  • 直接运行alpspython,在键入import pyalps(使用alps所必须)后会出现No module named pyhdf5_c这种与hdf5有关的坑爹问题
  • 而直接运行python则无上述hdf5相关问题,但是在模拟时(即输入pyalps.runApplication('spinmc',input_file,Tmin=5)等开始运行模拟的命令)会出现failed to find it at /lib/xml\ALPS.xsl的问题,大概为环境变量设置有误,找不到一些模拟必须且和alps相关的文件
  • 运行alpspython可能和一个文件alpspython.bat有关,该文件内容如下
1
2
3
4
5
6
REM  Copyright Matthias Troyer 2010.
REM  Distributed under the Boost Software License, Version 1.0.
REM      (See accompanying file LICENSE_1_0.txt or copy at
REM          http://www.boost.org/LICENSE_1_0.txt)
set PYTHONPATH=%PYTHONPATH%;%HOMEDRIVE%\Program Files\ALPS\lib;%HOMEDRIVE%\Program Files (x86)\ALPS\lib
python

可以推测在启动alpspython时除了运行上述CMD命令外,还存在一些别的操作,使得hdf5无法正常运行,所以我们使用自己添加环境变量的方法,直接使用python来使用alps,避免hdf5包的相关问题


增加环境变量运行python才能在python中使用alps

REM  Copyright Matthias Troyer 2010.
REM  Distributed under the Boost Software License, Version 1.0.
REM      (See accompanying file LICENSE_1_0.txt or copy at
REM          http://www.boost.org/LICENSE_1_0.txt)

# 设置环境变量
set PYTHONPATH=%PYTHONPATH%;%HOMEDRIVE%\Program Files\ALPS\lib;%HOMEDRIVE%\Program Files (x86)\ALPS\lib
# 启动python
python

将得到以下输出

(py27) C:\Users\WeiM\Downloads\ed-03-1dspectra>python
Python 2.7.15 (default, Mar  5 2020, 14:56:45) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 'C:\\Users\\WeiM\\.conda\\envs\\py27\\python27.zip', 'C:\\Users\\WeiM\\.conda\\envs\\py27\\DLLs', 'C:\\Users\\WeiM\\.conda\\envs\\py27\\lib', 'C:\\Users\\WeiM\\.conda\\envs\\py27\\lib\\plat-win', 'C:\\Users\\WeiM\\.conda\\envs\\py27\\lib\\lib-tk', 'C:\\Users\\WeiM\\.conda\\envs\\py27', 'C:\\Users\\WeiM\\.conda\\envs\\py27\\lib\\site-packages']
>>>

后续即可正常运行alps


除上述在启动时设置环境变量的方法外,还可以如下操作:
MC-01文件中加入代码

1
2
sys.path.append('C:\Program Files\ALPS')
sys.path.append('C:\Program Files (x86)\ALPS\lib')

后续

不知道为什么进行过上述过程后,后续使用python的alps再也不用手动设置环境变量了??


Yu
WRITTEN BY
Yu
🎓 College Students 📐Physics 💾 Programmer