在导入的函数中使用导入的模块

时间:2013-07-15 15:14:59

标签: python function import module global

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

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 个答案:

答案 0 :(得分:1)

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

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