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

问题描述 投票:-1回答:1

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

我需要从中取出数据流,并且需要进行部署,并且这样做时出现错误。Folder structure of the project, this works when I run from PyCharm

Error while running it from the terminal

python pycharm python-import python-3.7 importerror
1个回答
0
投票

引起猜测,也可以在venv中运行pychar您的代码吗?如果没有,您可能会检查您是否安装了venv中缺少的软件包。

更新

如果您有想要导入的数据流包并在其中使用模块,则需要在数据流文件夹中使用__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

原始帖子中的评论更新

btw pychar中的env与控制台中的venv无关。您只需告诉pycharm使用python 3.7,但使用venv即可将二进制文件复制到文件夹结构中。这就是说,如果您运行虚拟环境,则您在其中点子的所有内容都会复制到此文件夹结构中,而不是全局站点包中。这意味着如果您全局安装了东西,您将不会立即在虚拟环境中拥有它,反之亦然!

© www.soinside.com 2019 - 2024. All rights reserved.