2013-07-15 59 views
0

我有一个作为独立程序运行的脚本,但是我希望能够将它用作可调用函数。目前,当我尝试从另一个脚本运行它时,出现错误,指出某些模块没有被定义/导入。例如:在导入的函数中使用导入的模块

NameError: global name 'exp' is not defined 

下面是产生错误我的代码示例:

from PostREC3 import *   ##import the required functions from the module  

from numpy import array, shape, math, loadtxt, log10, vstack, arange 
from scipy.integrate import quad  
from pylab import all     
from numpy import pi as pi   
from assimulo.solvers.sundials import IDA 
from assimulo.problem import Implicit_Problem 
from math import exp, log10, fabs, atan, log 
import pickle 
import sys 

results = PostREC(2,100,90,1.0,1, 1,"0",2) #run an imported function 

输出:

NameError: global name 'exp' is not defined 

我试着从函数内部导入EXP,但是这并没有改变任何东西。据我所知,只要我在使用该函数之前导入它们,那么它们应该可用于其他任何函数使用。那么,我在做什么有什么问题,或者是否指向代码本身的另一个错误?

O/S:Ubuntu的12.10 Python 2.7版64位

+1

向我们展示* complete * traceback和'PostREC.PostREC'定义。导入的函数使用它们的原始模块作为全局名称空间。 –

回答

1

导入exp和任何其他模块/功能,你需要在你的PostREC3模块的顶部,而不是whithin特定功能。

导入不是“全局”,每个模块都需要导入运行所需的所有内容,即使其他模块已经这样做了。