在小小地纠结了两个晚上(其实完全不需要纠结),我成功设置了lammps动态库,可以从Python里面调用lammps写code了!
python因为代码简单,是一个很活跃的语言,于是在phd第一年,修了一门计算物理,就是用Python教的。上完课之后,就一直很想学以致用啦。
其实也因为Python很火,lammps的doc里面已经写好了怎么交互使用。
但是介于我是linux小白,也还是纠结了很久。使用的是ubuntu14.04,bash shell
按照doc里面11.3 建一个共享的lammps的库
1.先去lammps里面的src文件夹
我的话是:
cd Desktop
cd lammps-14May16
cd src
当你在src文件夹里,你就可以使用make command了。
make foo mode=shlib 这里的foo就是你的机器类型了,我这里就是ubuntu
所以我输入的是:
make ubuntu mode=shlib
上面的指令,会在你的文件夹里面,建一个liblammps_ubuntu.so file,和一个软连接 liblammps.so
2.设置环境变量
其实我现在还不是很清楚,环境变量是不是必须得设置。因为我第一天晚上设置好了,但是结果没有运行成功
第二天才做了步骤3,之后才成功了。
但是无论如何,环境变量的设置也是一个很常见的问题。
上面1里面提到了的liblammps_ubuntu.so 和在lammps/python下面找到的 lammp.py 文件都很关键。
我们希望python知道在哪里找到lammps的库(liblammps_ubuntu.so),所以要告诉他们一个寻找的位置
官方里面给的例子是这样的: 如果是用csh or tcsh shells,在 ~/.cshrc file里面加上下面两句话就好了。
setenv PYTHONPATH ${PYTHONPATH}:/home/sjplimp/lammps/python
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/home/sjplimp/lammps/src
然后我的是bash shell,不知道是不是ubuntu就是这样子的
所以,实际上对应的是 .bashrc file
这个文件
你在命令行里面输入
ls -al
就能在里面找到这个文件的踪迹
vi .bashrc
是我知道唯一能进入这个文件的办法…
因为貌似特殊文件,一般时候没有显示
但是结果进去了之后,看不懂。。。所以就没敢在里面乱改。
后来找到添加环境变量的方法是
输入env
就能看到你所有的环境变量
然后输入
export PYTHONPATH=$PYTHONPATH :/home/Desktop/lammps-14May16/python
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH :/home/Desktop/lammps-14May16/src
这个时候你再输入env
就能发现添加了这几个环境变量
然后别忘了输入
source ~/. bashrc
让你的环境变量生效。
(写到这里的我,已经无法坚持写下去了…)
突然发现设置的环境变量现在又不见了!
看来上面的方法不是永久有效的
还是得改文本么!!!
3.但是介于上面的发现,
说明其实不设置环境变量也没关系
有另外一个方法!
直接去跑install.py 就好了!
跑到lammps下面的python文件夹
python install.py
跑完没报错的话
直接测试
from lammps import lammps
lmp=lammps()
就输出了你的lammps版本
LAMMPS(14 May 2016)
If you use the python/install.py script, you need to invoke it every time you rebuild LAMMPS (as a shared library) or make changes to the python/lammps.py file.
注意的是,这样的话,每次重新建lammps?(什么叫rebuild lammps啊),
你就要重新运行一遍。
这样也没关系啊,只要能跑就好了!
我只有这么个最低要求。
写完才发现,我真的是小白求交流。理解了环境变量是干嘛用的,觉得还蛮神奇的~
继续奋斗,希望能之后继续写,怎样在python里面玩lammps~
共勉@求讨论求指教