计算化学公社
标题:
ASMD中py2脚本在py3中不适用,求助
[打印本页]
作者Author:
知黑守白
时间:
2021-5-12 10:00
标题:
ASMD中py2脚本在py3中不适用,求助
在amber中做ASMD,stage1结束之后需要判断轨迹中最符合
Jarzynski Average 的那条轨迹
官方教程提供了 ASMD.py脚本用于判断
但是目测这个官方的脚本是基于python2版本做的,系统内置python3.6,运行这个脚本会报错,如图
求助,脚本如何修改能使之适配python3?
万分感谢!!!
作者Author:
snljty
时间:
2021-5-12 14:14
本帖最后由 snljty 于 2021-5-12 14:16 编辑
108行
print >> sys.stdout, "The file closest to the Jarzynski Average is: %s" % asmdfile
复制代码
改成
print("The file closest to the Jarzynski Average is: %s" % asmdfile)
复制代码
然后70-72行
#open standard output/error files
sys.stdout = os.fdopen(sys.stdout.fileno(),'w',0)
sys.stderr = os.fdopen(sys.stderr.fileno(),'w',0)
复制代码
删去。这两个变量除了上面改的地方,压根没用到。而且python3不需要自己打开这两个文件。
顺便,python3自带的库里应该有个叫2to3(.py/.exe/没有后缀)的程序,直接用这个就能完成很多转换。没有测试文件只能改到这里,还有什么问题的话可以把测试文件贴上来。
作者Author:
知黑守白
时间:
2021-5-12 18:34
snljty 发表于 2021-5-12 14:14
108行
改成
哇!! 已经好用了!!!! 感谢您!!!!!
作者Author:
amber菜鸟
时间:
2022-8-26 16:41
楼主您好,我在执行ASMD.py这个脚本的时候,出现这个问题,请问如何解决呢?
python ASMD.py -i asmd*.work.dat.1 -o jar.stage1.dat
Traceback (most recent call last):
File "ASMD.py", line 11, in <module>
raise ImportError("Unable to load the necessary modules")
ImportError: Unable to load the necessary modules
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3