如何将任意子目录下的Python模块迁移至site-packages目录
具体操作步骤
- 第一步先把MGLTools下所有相关依赖包完整迁移到Anaconda的模块搜索路径。不要只复制
Utilities24单文件夹,必须把同目录下AutoDockTools依赖的MolKit、PyBabel、mglutil等配套包一起复制,否则运行时会报模块缺失错误。执行复制命令时注意路径里的空格、括号要做转义处理:
cp -r /mnt/d/Program\ Files\ \(x86\)/MGLTools-1.5.6/Lib/site-packages/* /home/$username/anaconda3/lib/python3.7/site-packages/
- 第二步修改目标脚本的解释器路径并添加可执行权限。找到复制完成后的
prepare_receptor.py,路径为/home/$username/anaconda3/lib/python3.7/site-packages/AutoDockTools/Utilities24/prepare_receptor.py,打开文件把第一行的shebang配置(原来指向MGLTools自带python的路径)替换为Anaconda环境的python路径,也就是改成:
#!/home/$username/anaconda3/bin/python
保存退出后给脚本添加可执行权限:
chmod +x /home/$username/anaconda3/lib/python3.7/site-packages/AutoDockTools/Utilities24/prepare_receptor.py
- 第三步把脚本所在目录加入系统环境变量,实现任意路径下直接调用脚本。如果你用bash终端,就编辑
~/.bashrc文件,用zsh就编辑~/.zshrc,在文件末尾追加一行配置:
export PATH="/home/$username/anaconda3/lib/python3.7/site-packages/AutoDockTools/Utilities24:$PATH"
保存后执行对应source命令让配置立即生效,bash用户执行source ~/.bashrc,zsh用户执行source ~/.zshrc。
- 最后直接在终端测试命令:
prepare_receptor.py -r a.pdb -o a.pdbqt,能正常运行就配置完成。
注意:MGLTools 1.5.6的官方配套脚本大多基于Python2语法编写,如果你的Anaconda Python3.7环境运行时报语法错误,可以单独新建一个Python2.7版本的conda虚拟环境,把上述操作里的site-packages路径、python解释器路径替换成对应虚拟环境的路径即可,操作逻辑完全一致。
内容的提问来源于stack exchange,提问作者BARIS KURT
相关产品推荐
相关产品推荐

