为什么我们必须在 Google Colab 中附加 Rdkit 的路径
Why do we have to append path for Rdkit in Google Colab
!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/')
您可以使用此代码。在 Colab 中安装 rdkit 会快很多。
!curl -L bit.ly/rdkit-colab | tar xz -C /
启动 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 中未包含的目录('/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.path 中的目录搜索顺序是在首次找到模块时停止。所以通过conda安装colab已经提供的包时,colab版本优先
!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/')
您可以使用此代码。在 Colab 中安装 rdkit 会快很多。
!curl -L bit.ly/rdkit-colab | tar xz -C /
启动 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 中未包含的目录('/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.path 中的目录搜索顺序是在首次找到模块时停止。所以通过conda安装colab已经提供的包时,colab版本优先