我正在使用 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
,而后者又从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:没有名为'abstract'的模块
最佳答案
更改此:
from abstract_parser import abstract
至
from logic.parsers.abstract_parser import abstract
关于python在虚拟环境中导入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39282612/