python - Google Colab 中的图形工具安装问题
问题描述
从字面上看,昨天我所有使用图形工具库的 colab 笔记本都正常工作。我需要做的就是在开头添加以下几行:
!echo "deb http://downloads.skewed.de/apt bionic main" >> /etc/apt/sources.list;
!apt-key adv --keyserver keys.openpgp.org --recv-key 612DEFB798507F25;
!apt-get update;
!apt-get install python3-graph-tool python3-cairo python3-matplotlib;
!pip install ipympl;
然后我会写from graph_tool.all import *
,一切都很好。这些说明是根据这个官方笔记本https://colab.research.google.com/github/count0/colab-gt/blob/master/colab-gt.ipynb。
然而,今天这个工作流程不再起作用了。安装命令很顺利,但是在导入模块时from graph_tool.all import *
我得到了ModuleNotFoundError: No module named 'graph_tool'
. 我已经尝试添加在 google colab 上安装图形工具包的问题中提出的命令,但它给了我相同的结果。
我已经读到这可能是由于图形工具对 python 3.6 的依赖而发生的,现在 Colab 有 3.7,因此我尝试在我的 colab 笔记本中使用 Python 3.6 创建 anaconda 环境:
!wget -c https://repo.anaconda.com/miniconda/Miniconda3-4.5.4-Linux-x86_64.sh
!chmod +x Miniconda3-4.5.4-Linux-x86_64.sh
!bash ./Miniconda3-4.5.4-Linux-x86_64.sh -b -f -p /usr/local
!conda install -q -y --prefix /usr/local python=3.6 ujson
import sys
sys.path.append('/usr/local/lib/python3.6/site-packages')
然后我写了这一行(我认为它以某种方式将 anaconda 与我的笔记本绑定,但我不确定):
!conda install -c conda-forge ipython jupyter
最后,我使用命令执行了安装(修改安装文档中的说明https://git.skewed.de/count0/graph-tool/-/wikis/installation-instructions):
!conda install -c conda-forge graph-tool
在此之后,我可以导入模块。但我的问题是所有这些安装都非常慢。我安装图形工具可能需要一个小时,主要是因为 anaconda 解决环境的时间很长。
有人对 Colab 中的图形工具安装有更聪明的想法吗?我应该补充一点,我不能放弃在云中进行分析(我想轻松分享我的笔记本并让每个人都可以在线运行)。也许存在其他一些可以安装图形工具的交互式 python 笔记本?
提前感谢您的帮助。
解决方案
试试曼巴
总之,它
- 安装 Miniconda Python 3.7 1
- 安装Mamba(Conda 的快速版本)
- 安装图形工具
- 调整一些动态库的麻烦
重要提示: 使用的 GLIBCgraph-tool
比 Colab 运行时中的系统版本更新。不幸的是,由于libstdc++.so是在运行时启动时加载的,因此仅添加一个 CondaLD_LIBRARY_PATH
是不够的(即,系统 1 被缓存)。笔记本通过调整libstdc++.so.6的符号链接以指向 Conda 来对此进行调整。但是,在此之后必须重新启动运行时。之后,继续运行后续单元(即,您不应重新运行任何设置)。
[1] Colaboratory 目前运行的是 Python 3.7,而不是 Python 3.6,这可能是 OP 方法的问题之一。
推荐阅读
- javascript - 从渲染器迁移到渲染器2
- linux - 如何阻止“是”命令重复其他命令?
- c# - Microsoft Azure 中托管的 .NET CORE API 应用程序超时异常(Redis 缓存、SQL、.NET Core)
- apache-spark - Simba Spark JDBC 驱动程序 - DatabaseMetaData.getColumns() 不起作用
- python - 熊猫数据帧中时间戳之间的时间差作为直方图
- maven - 故障安全错误:使用阴影插件时“清单主要属性的签名文件摘要无效”
- delphi - Delphi TCriticalSection Acquire vs Enter - 有什么区别?
- python - 在有 N 个键的迷宫中,我应该怎么做才能找到 BFS 的最短路径?
- kotlin - 你能帮我解释一下这个功能是如何工作的吗?它使用 Inline、reified、valueOf() 和 enumValues
- c++ - 如何在安装期间将文件夹共享访问权限设置为 MSI 中当前登录的用户(或任何其他本地用户)?