无法导入我的 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_appanalytic 文件夹中是否有 __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。 并注意命名空间问题。