我正在使用 python3、venv 和 c9.io PAAS 编写一个 Web 应用程序。我的代码结构如下:
batch_runner.py
logic/
__init__.py
parsers/
__init__.py
time_parser.py
abstract_parser.py
这里batch_runnerimports 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,但找不到time_parser从哪个调用abstract_parser,抛出ImportError: No module named 'abstract'