很多时候,我想在脚本中使用相同的程序包,而我大多从上一个脚本中复制所需的粘贴程序包。我想停止这项工作,并通过一个简单的功能运行所有主题,今天我尝试一下:
def econometrics():
print("Econometrics is starting")
import pandas as pd
import numpy as np
import statsmodels.formula.api as smf
import statsmodels.api as sm
import matplotlib.pyplot as plt
print("Econometrics is started")
econometrics()
该函数运行没有错误,但是当我从包中调用某些方法时,出现了如下错误:
名称'plt'未定义
该代码有什么问题?无论如何有定义功能来做到这一点?
最佳答案
该代码有什么问题?
简单答案:可变范围。 plt
(和其他)只能从econometrics
方法中访问。
例如,尝试制作一个名为importer.py
的文件
import pandas as pd
import numpy as np
import statsmodels.formula.api as smf
import statsmodels.api as sm
import matplotlib.pyplot as plt
然后在其他代码(位于同一目录中)中,
from importer import *
不过,建议使用
__init__.py
来解决该问题,但是尚不清楚是否具有模块/程序包布局。如果这样做,则使用
相对导入(相同目录):
from . import *
绝对导入(使用模块名称):
from some_module import *
关于python - 在python脚本中运行我想要的所有软件包的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36822485/