导入模块可在PyCharm中工作,但在终端python 3.7中给出错误

时间:2019-12-07 09:58:59

标签: python pycharm python-import python-3.7 importerror

我有一个项目,在其中我根据其用法创建了多个python文件。当我从pycharm运行时,它完全可以正常工作。但是,当我从终端运行相同文件时,出现错误:ModuleNotFoundError:没有名为“ dataflow”的模块

我需要从中取出数据流,并进行部署,这样做时会出现错误。

项目的文件夹结构,当我从PyCharm运行时可以使用

enter image description here

从终端运行时出错

enter image description here

1 个答案:

答案 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即可将二进制文件复制到文件夹结构中。那就是说,如果您运行虚拟环境,则您在其中点子的所有内容都会复制到此文件夹结构中,而不是全局站点包中。这意味着如果您全局安装了东西,您将不会立即在虚拟环境中拥有它,反之亦然!