python在虚拟环境中导入文件

标签 python python-venv c9.io

我正在使用 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/

相关文章:

python - 在cloud 9环境下安装python包zipline 支持workspace python

python - 不使用 pyplot 界面时向绘图添加图例

python - 如何将嵌套函数作为参数传递

python - 如何更改此代码以使用上下文管理器?

python3requirements.txt 文件显示不需要的包

php - 在服务器上找不到 .php 请求的 URL

heroku - Cloud IDE 无法连接到 heroku

python - 错误pyodbc用python连接sql server

python - 在带有 Pyenv 的虚拟环境中使用 Flask

python - 虚拟环境激活后没有影响