为什么我们必须在Google Colab中附加Rdkit的路径


!chmod +x Miniconda3-py37_4.8.3-Linux-x86_64.sh
!time bash ./Miniconda3-py37_4.8.3-Linux-x86_64.sh -b -f -p /usr/local
!time conda install -q -y -c conda-forge rdkit
import sys
sys.path.append('/usr/local/lib/python3.7/site-packages/')

在这段代码中,为什么我们必须在rdkit安装后附加路径?

sys.path.append('/usr/local/lib/python3.7/site-packages/')

在启动Python解释器时,将创建一个用于在导入时搜索模块的所有目录的列表。您可以通过变量sys.path访问它。如果你在colab中运行这个命令,你可以看到Python在哪里搜索模块。

import sys
sys.path
>>> ['',
'/env/python',
'/usr/lib/python36.zip',
'/usr/lib/python3.6',
'/usr/lib/python3.6/lib-dynload',
'/usr/local/lib/python3.6/dist-packages',
'/usr/lib/python3/dist-packages',
'/usr/local/lib/python3.6/dist-packages/IPython/extensions',
'/root/.ipython']

问题是conda将把包安装到sys. path中不包含的目录。path ('/usr/local/lib/python{pyversion}/site-packages/'),因此python将无法定位conda安装的包。解决这个问题很简单,只需将路径附加到sys.path。现在Python知道在哪里寻找包,在本例中是RDKit。注意,我们可以通过查看rdkit的安装位置来验证这种情况:

sys.path.append('/usr/local/lib/python3.7/site-packages/')
import rdkit
rdkit.__file__
>>> /usr/local/lib/python3.7/site-packages/rdkit/__init__.py 

还需要注意的是,sys。路径按顺序搜索,当第一次找到模块时停止。因此,当通过conda安装已经由colab提供的包时,colab版本将优先。

您可以使用此代码。在Colab中安装rdkit要快得多。

!curl -L bit.ly/rdkit-colab | tar xz -C /

最新更新