我尝试使用python字符串模板为mutate_model.py脚本(http://salilab.org/modeller/wiki/Mutate%20model)创建自己的模板,其中我替换了这五个变量的值Model,resType,resPos,pdb,chain to replce并写一个新的文件的值,但我收到如下错误:
# only append the runtime dir on Linux
rdirs = []
ldirs = []
if sys.platform != 'darwin':
# from http://stackoverflow.com/a/10252190/416626
# the $ORIGIN trick is not perfect, though
rdirs = ['$ORIGIN']
if sys.platform == 'darwin':
ldirs = ['-Wl,-rpath,'+'@loader_path/liblonlat_bng.dylib']
extensions = Extension("convertbng.cutil",
sources=["convertbng/cutil" + suffix],
libraries=["lonlat_bng"],
include_dirs=['.', 'convertbng'],
library_dirs=['.', 'convertbng'],
runtime_library_dirs=rdirs,
extra_compile_args=["-O3"],
extra_link_args=ldirs
)
提前致谢
答案 0 :(得分:8)
这是错误的,因为你的字符串中有一个无效的模板标识符
env.libs.parameters.read(file='$(LIB)/par.lib') # Notice the $(LIB)
来自文档
$$是一个逃脱;它被替换为单个$。
字符串中$的任何其他外观都会导致引发ValueError。
您需要使用
$$(LIB)
此外,您的变量大小写不匹配
mdl1.write(file=$modelname+$restyp1+$respos1+$chain+'.tmp')#change
但是你传递的是resType1
和resPos1
。您需要传递restype1
和respos1