Python:将networkx导入为nx:未定义全局名称

时间:2014-08-26 18:52:44

标签: python import networkx

我写了一个模块(processing_0),我在其中导入了项目所需的所有包和模块。

import networkx as nx
import matplotlib.pyplot as plt
import numpy as np
import collections
import la
import csv
import fishery
import re
from collections import OrderedDict

import processing_1
import processing_2
import processing_3

from processing_1 import readingraph, readinpathgraph, preparefisher, inEEG
from processing_2 import pathwayprofile
from processing_3 import checkkin
from fishery import fisher

我写的模块(processing_1 / 2/3)都需要访问networkx(nx)。

作为主模块的一部分,我有一个启动功能:

def startup():

  EEG = readingraph("/.../file1")
  EET = readingraph("/.../file2")
  EEL = readingraph("/.../file3")

  return EEG, EET, EEL

但是,在导入processing_0并尝试运行使用来自processing_1的readraph的startup()后,我不断收到错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "processing_0.py", line 31, in startup
    EEG = readingraph("/.../file1")
  File "processing_1.py", line 4, in process
    graph = nx.read_adjlist(filename)
NameError: global name 'nx' is not defined

有没有办法将networkx全局导入为nx并使所有导入的模块都可以访问?

2 个答案:

答案 0 :(得分:1)

如果您使用的是Linux ubuntu,请按顺序执行以下操作。

  1. sudo apt-get更新
  2. sudo apt-get install python-networkx
  3. 转到pycharm env和> file> setting>解释器并进行结构 配置您的python env并添加软件包,有所有软件包 在环境中,然后单击+添加新软件包
  4. 在搜索文本框中键入networkx,然后从包中选择它 列表,然后单击安装
  5. 完成后,单击“确定”并关闭窗口

答案 1 :(得分:0)

在您使用networkx的每个文件中,您都需要导入它。所以只需重复这一行 将networkx导入为nx 在文件processing_1.py