python - 为什么 Utils.py 中的库没有加载?
问题描述
我无法确定导致此问题的原因。基本上,我正在开发一个在 conda 环境中运行的 jupyter notebook。我创建了一个文件“Myutils.py”,它有一些辅助函数供以后使用。该文件保存在与笔记本相同的文件夹中。考虑到我已经在笔记本和 Myutils 文件中进行了必要的导入,我仍然遇到名称错误:
在笔记本中:
第一个单元格:
import cv2
import pytesseract
import numpy as np
import os
import matplotlib.pyplot as plt
from MyUtils import *
%matplotlib inline
然后:
img = cv2.imread('./yolov5/runs/detect/exp/crops/address/422.jpg')
plt.imshow(remove_noise(img))
产生此错误消息:
NameError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_17892/550149434.py in <module>
1 img = cv2.imread('./yolov5/runs/detect/exp/crops/address/422.jpg')
----> 2 plt.imshow(remove_noise(img))
~\Documents\Machine Learning\Projects\CIN OCR\MyUtils.py in remove_noise(image)
5 def get_grayscale(image):
6 return cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
----> 7
8 # noise removal
9 def remove_noise(image):
NameError: name 'cv2' is not defined
而且,在 Myutils.py 中,我们有:
import cv2
import numpy as np
# get grayscale image
def get_grayscale(image):
return cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
解决方案
通过这样做from Myutils import *
,您将覆盖较早的import cv2
.
我不知道这是否是导致您的错误的原因,但import *
除非您确定没有冲突,否则值得避免 - 参见例如:
推荐阅读
- pandas - Pandas 1.0.1 - 如何使用包含切片器的列表使用 MultiIndex 索引 DataFrame
- sql - 查找SQL中列值变化的时间范围
- python-3.x - 在我的代码中为 if 语句添加条件?
- javascript - Java Script - 用条件替换文本
- group-by - 在 AWS QLDB / Partiql 中使用 GROUP BY
- ios - 如何通过 Appium/WebdriverIO 更改 iOS 滑块值
- flutter - 嵌套 BlocBuilders 以管理同一个小部件上的多个状态
- php - PHP文件未移动到目录/文件夹
- db2 - 在 DB2 的表中更新或插入多行
- css - 定位滚动条