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模块未找到错误没有模块命名的主要内容,如果未能解决你的问题,请参考以下文章