属性错误:模块“networkx”没有“Graph”属性。

6

我通过下载分发文件并运行以下命令来安装networkx:

python setup.py install

看起来安装成功了,我在安装后收到了这条消息。

Installed c:\python\python36-32\lib\site-packages\decorator-4.0.11-py3.6.egg
Finished processing dependencies for networkx==1.11

但是,当我运行一个非常简单的测试代码时,我会得到错误。

import networkx as nx

G=nx.Graph()

print(G.nodes())
print(G.edges())

print(type(G.nodes()))
print(type(G.edges()))

> Traceback (most recent call last):   File "netExample.py", line 3, in
> <module>
>     G=nx.Graph() 

> AttributeError: module 'networkx' has no attribute 'Graph'

运行 print(dr(nx)) 将会得到以下属性:

> ['GraphMLReader', 'GraphMLWriter', '__builtins__', '__cached__',
> '__doc__', '__file__', '__loader__', '__name__', '__package__',
> '__path__', '__spec__', 'exception', 'generate_adjlist',
> 'generate_edgelist', 'generate_gexf', 'generate_gml',
> 'generate_graph6', 'generate_graphml', 'generate_multiline_adjlist',
> 'generate_pajek', 'generate_sparse6', 'parse_adjlist',
> 'parse_edgelist', 'parse_gml', 'parse_graph6', 'parse_graphml',
> 'parse_leda', 'parse_multiline_adjlist', 'parse_pajek',
> 'parse_sparse6', 'read_adjlist', 'read_edgelist', 'read_gexf',
> 'read_gml', 'read_gpickle', 'read_graph6', 'read_graphml',
> 'read_leda', 'read_multiline_adjlist', 'read_pajek', 'read_shp',
> 'read_sparse6', 'read_weighted_edgelist', 'read_yaml', 'readwrite',
> 'relabel_gexf_graph', 'utils', 'write_adjlist', 'write_edgelist',
> 'write_gexf', 'write_gml', 'write_gpickle', 'write_graph6',
> 'write_graphml', 'write_multiline_adjlist', 'write_pajek',
> 'write_shp', 'write_sparse6', 'write_weighted_edgelist', 'write_yaml']

1
请使用 pip freeze 命令检查 networkx 模块是否已成功安装。如果需要,请重新启动命令提示符或终端。你的脚本文件名是什么?是 networkx.py 吗?如果是,将其重命名为其他名称,它就可以正常工作了。 - Naveen Kumar R B
看起来好像是这样,它给了我文本“networkx==1.11”。我的脚本文件名是“netExamply.py”。 - NBC
1
脚本的名称在堆栈跟踪中是“all right”(一个经典但不在这里)。您可以执行print(dir(nx))以查看可用的成员/对象。 - Jean-François Fabre
图形不是其中之一(完整响应太长无法在评论中发布)。这是否意味着安装有问题? - NBC
1个回答

2

按照以下步骤操作,我在python 3.5版本中成功了。

  1. 下载networkx-1.11.zip
  2. 解压缩zip文件
  3. 打开cmd并cd到提取的目录
  4. 运行python setup.py install
  5. 使用pip freeze验证安装
  6. 将测试代码保存在netExample.py文件中。
  7. 在CMD中,cd到包含netExample.py的文件夹
  8. 运行python netExample.py

以下是我得到的输出:

D:\Naveen\so>python netExample.py
[]
[]
<class 'list'>
<class 'list'>

请检查以下内容:
  1. 确认您是否从官方网站下载。
  2. 检查在实际的networkx模块之前,Windows路径中是否存在任何其他名为networkx.py的文件。

1
这正是我上次所做的,但我认为在提取部分肯定出了些问题。现在完美地运作了! - NBC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接