【发布时间】:2017-01-09 23:48:49
【问题描述】:
我正在使用 python3、venv 和 c9.io PAAS 编写一个 Web 应用程序。我的代码结构如下:
batch_runner.py
logic/
__init__.py
parsers/
__init__.py
time_parser.py
abstract_parser.py
这里batch_runner 导入abstract_parser,而abstract_parser 又从time_parser 导入。一切都已安装并在激活 venv 的情况下运行。
具体来说,batch_runner.py 包含:
from logic.parsers import abstract
from sys import argv
url = argv[1]
a = abstract(url)
logic/__init__.py 为空。 logic/parsers/__init__.py 包含:
from abstract_parser import abstract
from time_parser import _timeInfo
如果我转到logic 并直接运行python abstract_parser.py,一切都会按预期进行。但是,如果我上一层,运行python batch_runner.py,它可以导入abstract_parser,但找不到从abstract_parser调用的time_parser,抛出ImportError: No module named 'abstract'
【问题讨论】:
-
请添加什么文件导入什么,以及您正在使用的确切导入语句。你在用
from logic import abstract_parser吗?您如何尝试导入time_parser?__init__.py文件包含什么内容? -
谢谢。添加了所有关于导入的信息
标签: python python-venv c9.io