【发布时间】:2016-06-07 16:05:36
【问题描述】:
这是我的模块的目录结构: Directory Structure
可以看出DataProcessor是一个模块,里面DataLoader有一定的功能。
在lda 模块中,文件HFT.py 有一行
从数据处理器导入数据加载器
我正在尝试从主目录274-Yelp/ 运行lda/HFT.py
python lda/HFT.py
这给出了以下错误:
Traceback (most recent call last):
File "lda/HFT.py", line 6, in <module>
from DataProcessor import DataLoader
ImportError: No module named DataProcessor
但是,当我跑步时ipython lda/HFT.py
它运行!
我正在使用位于主目录 274-Yelp/ 中的 virtualenv
谁能告诉我为什么 Ipython 可以导入模块而普通的 Python 解释器不能?
DataProcessor/__init__.py的内容:
import DataLoader
import MatrixConstructor
import ReviewProcessor
import vocabBuilder
lda/__init__.py的内容:
来自 ReviewModel 我
port ReviewModel
from RatingModel import RatingModel
from HFT import HFT
【问题讨论】:
-
如果你执行 which python 和 a which ipython 结果是什么?
-
能否指定
init.py在DataProcessor模块和lda模块中的内容 -
尝试在顶部的
lda/HFT.py文件中添加sys.path.append(absolute path of DataProcessor module ),在` from DataProcessor import DataLoader`语句之前。 -
which python: .../274B-Yelp/yelp_env/bin/pythonwhich ipython: .../274B-Yelp/yelp_env/bin/ipython -
@Tanu - 我已经在问题中包含了内容。添加
sys.path应该可以,但即使可以,为什么 iPython 解释我的文件的方式与 Python 的方式之间存在差异?
标签: python python-2.7