python模块未找到错误没有模块命名

Posted

技术标签:

【中文标题】python模块未找到错误没有模块命名【英文标题】:python module not found error no module named 【发布时间】:2020-08-11 03:54:38 【问题描述】:

我有几个单独的 pythone 文件,我正在使用它们导入另一个 py 文件。尝试导入它们的模块位于单独的文件夹中,我的代码示例如下

from tez.library.image_crop import ImageCrop
from tez.library.image_process import ImageProcess
from tez.library.image_features import ImageFeatures
from tez.const.application_const import ApplicationConst
from tez.library.file_operation import FileOperation

这段代码在我想使用command line作为“python samples1.py”启动py文件的地方,并引发如下错误

Traceback(最近一次调用最后一次):文件“samples1.py”,第 1 行,在 from tez.library.image_crop import ImageCrop ModuleNotFoundError: No module named 'tez'

文件夹结构:

.tez -- 图书馆 ---- image_crop.py ---- image_process.py ---- image_features.py --src ---- samples1.py

Python 版本:3.8 点数:20.0.2 Windows 10 专业版 1909

【问题讨论】:

您是安装了tez 包,还是将其添加到PYTHONPATH tez 是文件夹名称。不是一个包。我在 q 中添加了文件夹结构。 通过尝试导入 from tez...,您是在告诉 Python tez 是一个包。 hm.ok 那么如何从不同的文件夹导入 python 文件? 【参考方案1】:

如果您正在构建一个名为 tez 的包(并且由于您尝试导入它,我认为您是)。然后 tez 的所有内容都需要在本地引用自己。 tez 包中的所有文件都需要用“.”相互引用。和“..”进口。

在samples1.py中:

from ..library.image_crop import <something>

编辑:

听起来你误解了 python 是如何导入东西的。当您在 python 脚本中运行“import X”时,python 会在 sys.path 下查找名为 X 的包。如果您有要查找的自定义包,您可以附加到脚本顶部的 sys.path。

import sys
sys.path.append(<directory of tez>)

import tez

但是,强烈建议您不要从位于包名目录结构下的文件导入。如果“examples”是使用包“tez”的示例目录,那么“examples”应该位于包“tez”之外。如果“examples”在包“tez”中,那么“examples”应该在包“with-in”中进行本地导入。

处理包的使用可能很棘手。

【讨论】:

no tez 是其中一些 python 文件的文件夹名称。另一个名为 src 的文件夹是我的应用程序 py 文件要使用命令提示符运行的主文件夹 那你为什么会有一行“import tez....”?这一行意味着 tez 是一个包,python 内核将转到该包并查找 init 文件(如果可以找到)。【参考方案2】:

sample.py 看不到上面的 src 文件夹,但你可以告诉 Python 这样做。:

import sys
import os
tez = os.path.dirname(os.path.dirname(__file__))
# __file__ is path of our file (samples.py)
# dirname of __file__ is "src" in our state
# dirname of "src" is "tez" in our state

sys.path.append(tez) # append tez to sys.path, python will look at here when you try import something

import library.image_crop # dont write "tez"

但我认为这不是一个很好的设计。

【讨论】:

以上是关于python模块未找到错误没有模块命名的主要内容,如果未能解决你的问题,请参考以下文章

Python - 未找到 Numpy 模块

通过命令提示符运行python程序时未找到模块错误

模块未找到 Python

Python的错误导入已经安装模块问题,怎么解决

Python:没有命名模块...如何使用 pip

Python - ModuleNotFoundError:没有命名的模块