无法导入子模块

时间:2018-01-03 16:09:16

标签: python scikit-learn pycharm

我有一个像这样的项目结构:

project-root/
   source-root/
      sub-package/
         not_working.py
      working.py

如果我在BaseEstimator中导入working.py

from sklearn.base import BaseEstimator

一切都在......工作。

如果我在not_working.py我这样做

Traceback (most recent call last):
  File "/home/user/project-root/source-root/sub-package/not_working.py", line 3, in <module>
    from sklearn.base import BaseEstimator
ImportError: No module named 'sklearn.base'; 'sklearn' is not a package

不知道问题是什么。我可以加载其他模块

这是 working.py not_working.py - 两者都有相同的代码。

import re

import numpy as np
import pandas as pd

from sklearn.base import BaseEstimator
from sklearn.pipeline import Pipeline, FeatureUnion

我可以毫无困难地导入numpy,pandas,但它不适用于sklearn包。

我已将解释器设置为我当地的Python3.5解释器

enter image description here

并且包似乎安装正确:

$ pip3 show sklearn
Name: sklearn
Version: 0.0
Summary: A set of python modules for machine learning and data mining
Home-page: https://pypi.python.org/pypi/scikit-learn/
Author: UNKNOWN
Author-email: UNKNOWN
License: None
Location: /usr/local/lib/python3.5/dist-packages
Requires: scikit-learn

1 个答案:

答案 0 :(得分:3)

在我们的convo之后,not_working.py被称为sklearn.py,因此名称冲突意味着sklearn只是一个文件而不是我们想要的包。

<强>解决方案sklearn.py重命名为其他内容,例如learner.py