不满足可选依赖项:安装 igraph 和 leidenalg 以使用所选功能

Optional dependency not satisfied: install igraph and leidenalg to use the selected feature

我正在尝试 运行 cdlib 文档中的以下 example

from cdlib import algorithms
import networkx as nx

G = nx.karate_club_graph()
coms = algorithms.leiden(G)

但是我得到以下错误:

Optional dependency not satisfied: install igraph and leidenalg to use the selected feature.

所以,那我运行:

import sys
!{sys.executable} -m pip install igraph
!{sys.executable} -m pip install leidenalg

为了安装选定的软件包, 认为它会解决问题。
但是,我又遇到了同样的错误。

你能帮我解决这个问题吗?

编辑: 我发现这个 issue,显示同样的问题。显然重启内核可以修复它。

现在我得到以下 DeprecationWarning

DeprecationWarning                        Traceback (most recent call last)
<ipython-input-2-6636976ddbf9> in <module>
----> 1 from cdlib import algorithms
      2 import networkx as nx
      3 G = nx.karate_club_graph()
      4 coms = algorithms.leiden(G)

/opt/anaconda3/lib/python3.7/site-packages/cdlib/__init__.py in <module>
----> 1 from cdlib.classes.node_clustering import NodeClustering
      2 from cdlib.classes.edge_clustering import EdgeClustering
      3 from cdlib.classes.fuzzy_node_clustering import FuzzyNodeClustering
      4 from cdlib.classes.attr_node_clustering import AttrNodeClustering
      5 from cdlib.classes.bipartite_node_clustering import BiNodeClustering

/opt/anaconda3/lib/python3.7/site-packages/cdlib/classes/__init__.py in <module>
----> 1 from .node_clustering import NodeClustering
      2 from .edge_clustering import EdgeClustering
      3 from .fuzzy_node_clustering import FuzzyNodeClustering
      4 from .attr_node_clustering import AttrNodeClustering
      5 from .bipartite_node_clustering import BiNodeClustering

/opt/anaconda3/lib/python3.7/site-packages/cdlib/classes/node_clustering.py in <module>
      1 from cdlib.classes.clustering import Clustering
----> 2 from cdlib import evaluation
      3 import networkx as nx
      4 
      5 try:

/opt/anaconda3/lib/python3.7/site-packages/cdlib/evaluation/__init__.py in <module>
----> 1 from .fitness import *
      2 from .comparison import *
      3 from .fitnessranking import *
      4 from .comparisonranking import *

/opt/anaconda3/lib/python3.7/site-packages/cdlib/evaluation/fitness.py in <module>
      1 import pquality as pq
      2 import networkx as nx
----> 3 from cdlib.utils import convert_graph_formats
      4 from collections import namedtuple
      5 import numpy as np

/opt/anaconda3/lib/python3.7/site-packages/cdlib/utils.py in <module>
      1 from contextlib import contextmanager
      2 try:
----> 3     import igraph as ig
      4 except ModuleNotFoundError:
      5     ig = None

/opt/anaconda3/lib/python3.7/site-packages/igraph/__init__.py in <module>
      6 __license__ = "MIT"
      7 
----> 8 raise DeprecationWarning("To avoid name collision with the igraph project, "
      9                          "this visualization library has been renamed to "
     10                          "'jgraph'. Please upgrade when convenient.")

DeprecationWarning: To avoid name collision with the igraph project, this visualization library has been renamed to 'jgraph'. Please upgrade when convenient.

有办法解决这个问题吗?

使用:

!{sys.executable} -m pip install python-igraph

而不是:

!{sys.executable} -m pip install igraph

问题已解决。
这是因为 igraph(重命名为 jgraph)与众所周知的 python-igraph.

是不同的包