python - 模块功能无法识别导入的包
问题描述
我有一个正在使用的 Jupyter 笔记本。在第一个单元格中,我导入了几个常见的包:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from scipy import signal
在下一个单元格中,我导入了一个名为“apt_pkg”的包,其中包含一个名为“test_mod.py”的模块:
from apt_pkg import *
模块“test_mod.py”包含以下功能:
def working():
print('Is working')
print(np.nan)
return
然后我在 Jupyter 笔记本中运行该函数:
test_mod.working()
当我这样做时,我得到一个 NameError ("NameError: name 'np' is not defined")。代码可以在这里看到:
如果我更改函数并将 matplotlib.pyplot 引用为 plt(例如 plt.show())或将 pandas 引用为 pd(例如 pd.DataFrame),我还会得到一个 NameError,其中未定义“plt”或“pd”。我该如何纠正?
解决方案
你需要在np
里面定义test_mod.py
:
import numpy as np
def working():
print('Is working')
print(np.nan)
return
在 Jupyter Notebook 中导入numpy as np
是不够的:您需要在每个需要它的脚本中导入包(这里test_mod.py
)
推荐阅读
- haskell - 为复杂类型创建任意实例
- php - 对包含来自 Gmail 电子邮件的表情符号的电子邮件正文使用 forceUTF8 会将表情符号转换为“?” 什么类型的表情符号是 Gmail 表情符号?
- java - 用于查找表的 Java JPA Spring 多重查询
- r - 按组对大于当前值的值求和
- apache-nifi - JSON属性上的NiFi路由
- python - 即使安装了 pygame,我也无法加载图像
- javascript - POST:REACT APP 上的 400 BAD REQUEST - 使用 Express
- sql - 使用 postgresql 准备布林带 - STDDEV 和 PARTITION BY
- java - 在 spark / java 上按 desc 限制的顺序加入数据帧
- android - 从动态创建的 TextInputEditText 中获取数据并将它们插入到数组中