我写了一个模块(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并使所有导入的模块都可以访问?
答案 0 :(得分:1)
如果您使用的是Linux ubuntu,请按顺序执行以下操作。
答案 1 :(得分:0)
在您使用networkx的每个文件中,您都需要导入它。所以只需重复这一行 将networkx导入为nx 在文件processing_1.py
中