在Python中使用一个模块内部另一个模块

在Python中使用一个模块内部另一个模块,python,pandas,Python,Pandas,我试图在Python中使一些代码更加模块化,并且遇到了一个问题,我确信这是直截了当的,但我似乎看不出问题是什么 假设我有一个脚本,比如MyScript.py: import pandas as pd import myFunction as mF data_frame = mF.data_imp() print(data_frame) 其中myFunction.py包含以下内容: def data_imp(): return pd.read_table('myFile.txt',

我试图在Python中使一些代码更加模块化,并且遇到了一个问题,我确信这是直截了当的,但我似乎看不出问题是什么

假设我有一个脚本,比如MyScript.py:

import pandas as pd
import myFunction as mF

data_frame = mF.data_imp()

print(data_frame)
其中myFunction.py包含以下内容:

def data_imp():
    return pd.read_table('myFile.txt', header = None, names = ['column'])
在命令行中运行MyScript.py会产生以下错误:

    Traceback (most recent call last):
      File "MyScript.py", line 5, in <module>
        data_frame = mF.data_imp()
      File "/Users/tomack/Documents/python/StackQpd/myFunction.py", line 2, in data_imp
        return pd.read_table('myFile.txt', header = None, names = ['column'])
    NameError: name 'pd' is not defined
回溯(最近一次呼叫最后一次):
文件“MyScript.py”,第5行,在
data\u frame=mF.data\u imp()
文件“/Users/tomack/Documents/python/StackQpd/myFunction.py”,第2行,数据导入
返回pd.read_表('myFile.txt',header=None,names=['column'])
NameError:未定义名称“pd”

您需要在函数或脚本myFunction中导入熊猫:

def data_imp():
    import pandas as pd
    return pd.read_table('myFile.txt', header = None, names = ['column'])

这里的答案是正确的,因为您的模块确实缺少
myFunction
import

如果说得更广泛,这个问题还可以包含以下内容:在循环进口的情况下,只有两种补救措施:

  • 将熊猫作为pd导入,但不从熊猫导入内容
  • 在placd中需要的函数中使用导入

  • myFunction
    模块中使用
    import pandas as pd
    导入熊猫。您应该在myFunction脚本中导入熊猫谢谢,所以另一个问题是,假设我有一组python文件-myFunction1.py、myFunction2.py、myFunction3.py-每个文件都包含使用熊猫的“read_table”函数,并在MyScript.py中调用,如何最大限度地减少键入“作为pd导入熊猫”的次数?