无法导入我的 util 模块
cannot import my util module
我正在使用 sklearn.externals.joblib
将 classifier 模型持久保存到磁盘,实际上它在较低级别使用 pickle
模块。
我创建了一个名为 StemmedCountVectorizer
的自定义 CountVectorizer
class 并将其保存在 util.py
中,然后在脚本中使用它来持久化模型
import util
from sklearn.externals import joblib
vect = util.StemmedCountVectorizer(stop_words='english', ngram_range=(1,1))
bow = vect.fit_transform(sentences)
joblib.dump(vect, 'vect.pkl')
这是我使用 Flask 的项目结构:
|- sentiment/
|- run.py
|- my_app/
|- analytic/
|- views.py
|- util. py
|- vect.pkl
我 运行 使用 python run.py
的应用程序并尝试在 views.py
中使用 joblib.load
加载持久对象但是它不起作用,我导入了 util
模块,但我收到错误:
ImportError: No module named util
有人可以解决这个问题吗?谢谢
看起来像 package/pythonpath 问题。系统需要知道在哪里定位你的模块。 my_app
和 analytic
文件夹中是否有 __init.py__
? __init__.py
文件将磁盘上的目录标记为 Python 包目录。结构应该是这样的
|- sentiment/
|- run.py
|- my_app/
|- __init__.py
|- analytic/
|- __init__.py
|- views.py
|- util. py
|- vect.pkl
然后在您的 run.py
中,尝试使用
导入
import my_app.analytic.utils
或
from my_app.analytic.utils import <yourClassName>
有关 python 包的详细信息,请查看 here。
并注意命名空间问题。
我正在使用 sklearn.externals.joblib
将 classifier 模型持久保存到磁盘,实际上它在较低级别使用 pickle
模块。
我创建了一个名为 StemmedCountVectorizer
的自定义 CountVectorizer
class 并将其保存在 util.py
中,然后在脚本中使用它来持久化模型
import util
from sklearn.externals import joblib
vect = util.StemmedCountVectorizer(stop_words='english', ngram_range=(1,1))
bow = vect.fit_transform(sentences)
joblib.dump(vect, 'vect.pkl')
这是我使用 Flask 的项目结构:
|- sentiment/
|- run.py
|- my_app/
|- analytic/
|- views.py
|- util. py
|- vect.pkl
我 运行 使用 python run.py
的应用程序并尝试在 views.py
中使用 joblib.load
加载持久对象但是它不起作用,我导入了 util
模块,但我收到错误:
ImportError: No module named util
有人可以解决这个问题吗?谢谢
看起来像 package/pythonpath 问题。系统需要知道在哪里定位你的模块。 my_app
和 analytic
文件夹中是否有 __init.py__
? __init__.py
文件将磁盘上的目录标记为 Python 包目录。结构应该是这样的
|- sentiment/
|- run.py
|- my_app/
|- __init__.py
|- analytic/
|- __init__.py
|- views.py
|- util. py
|- vect.pkl
然后在您的 run.py
中,尝试使用
import my_app.analytic.utils
或
from my_app.analytic.utils import <yourClassName>
有关 python 包的详细信息,请查看 here。 并注意命名空间问题。