我有一个项目,在其中我根据其用法创建了多个python文件。当我从pycharm运行时,它完全可以正常工作。但是,当我从终端运行相同文件时,出现错误:ModuleNotFoundError:没有名为“ dataflow”的模块
我需要从中取出数据流,并进行部署,这样做时会出现错误。
项目的文件夹结构,当我从PyCharm运行时可以使用
从终端运行时出错
答案 0 :(得分:0)
引起猜想,也可以在venv中运行pychar您的代码吗?如果没有,您可能会检查您是否安装了venv中缺少的软件包。
更新
如果打算使用要导入的数据流包并在其中使用模块,则需要在dataflow文件夹中使用__init__.py文件。这使其成为python的软件包。如果要与一起使用数据流中的模块。在导入中,您需要在__init __。py
中进行导入像这样
import .driver_main
这使得来自driver_main的内容在数据流中可用,但更好的做法是指定要从driver_main访问的内容,例如
from .driver_main import MyDriver
这会让您通过以下方式访问我的驱动程序
dataflow.MyDriver
如果您真的只想从同一个lvl上的一个模块访问内容,则应该可以使用相同的方法进行。因此,您在图片中显示的示例中尝试更改
from dataflow import driver_main
到
from . import driver_main
这将适用于与driver.main.py相同的lvl上的模块中的导入,例如app.py
有关原始帖子中评论的更新
pychar中的env与控制台中的venv无关。您只需告诉pycharm使用python 3.7,但使用venv即可将二进制文件复制到文件夹结构中。那就是说,如果您运行虚拟环境,则您在其中点子的所有内容都会复制到此文件夹结构中,而不是全局站点包中。这意味着如果您全局安装了东西,您将不会立即在虚拟环境中拥有它,反之亦然!