Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从模块导入函数时发生Python导入错误(ModuleNotFoundError),该模块从另一个模块导入类_Python_Importerror - Fatal编程技术网

从模块导入函数时发生Python导入错误(ModuleNotFoundError),该模块从另一个模块导入类

从模块导入函数时发生Python导入错误(ModuleNotFoundError),该模块从另一个模块导入类,python,importerror,Python,Importerror,我的文件结构如下所示: /dir/ main.py /src/ functionsfile.py classfile.py 函数文件有一个函数,它使用在类文件中创建的类。我把那个类导入 from classfile import ClassName (我也尝试过导入*) 仅使用print语句测试functionsfile中的函数,它似乎找到了类模块并使用ClassName很好,但是当我将该函数从functionsfile导入main.py脚本时

我的文件结构如下所示:

/dir/
    main.py
    /src/
        functionsfile.py
        classfile.py
函数文件
有一个函数,它使用在
类文件
中创建的类。我把那个类导入

from classfile import ClassName
(我也尝试过导入
*

仅使用
print
语句测试
functionsfile
中的函数,它似乎找到了类模块并使用
ClassName
很好,但是当我
将该函数从
functionsfile
导入
main.py
脚本时,它给出了错误:

ModuleNotFoundError: No module named 'classfile'
我尝试用以下两种方法导入函数:

from functionsfile import function


我不知道为什么会发生这种情况?

看来您缺少\uuu init\uuuuuuuuuy.py文件。在/src/文件夹中添加后尝试导入。

尝试

from src.classfile import ClassName
更改目录结构也会更好

/dir
  /src
    /class
       classfile.py
       functionsfile.py
    main.py

正如宝瓶座所说,你需要在src文件夹中创建一个空白的
\uuuu init\uuuuu.py
文件

并尝试将其作为

from src.classfile import *
main.py文件中


我希望它对您有用:D

为什么您将其他文件放在一个单独的文件夹中?您的依赖项中有一个循环:一个文件从另一个文件导入当前文件。如果出于某种原因,你不能没有它,你应该在需要它的函数中使用本地导入,但最有可能的是,你只需要重新组织你的代码来避免这个循环。我不知道你所说的循环是什么意思?main.py从函数导入从类文件导入的文件。对我来说是线性的?我只是尝试将init.py添加到两个文件夹中。。还有这个问题。我不认为我必须这么做,因为我有最新版本的python,它应该不再是必要的了。无论如何,我仍然会遇到错误:(这很有效!非常感谢!我想在导入functionsfile时,不在sys.path上的导入模块需要一个相对于使用该函数的最终文件的导入路径。
from src.classfile import *