无法从子目录导入Python3中的模块

2024-10-01 13:25:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我当前的工作文件采用以下文件结构:

--Trick_Folder (root folder)
   --try.py
  --LTransform (sub-folder)
     --encoder.py
     --decoder.py
     --sampler.py
     --__init__.py

在我的try.py中,我尝试编写从子文件夹LTransform导入一个模块,如下所示:

^{pr2}$

注意:在encoder.py中有一条import sampler行)

这是我得到的错误:

import sampler
ImportError: No module named 'sampler'

我试着去理解它,但我无法理解它。__init__.py已经在子文件夹中,而我的PYTHONPATH在根文件夹Trick_Folder上设置为/home/user/Trick_Folder

当从根文件夹(Trick_Folder)导入encoder.py时,Python3解释器为什么能调用sampler.py?在


Tags: 文件pyimport文件夹encoderinitrootfolder
2条回答

要告诉python从当前目录导入,请使用:

from . import sampler

在你的encoder.py

找到了导入模块的正确方法。在

在我的encoder.py中,行import sampler之前是this Query所建议的,我按照@ahmed的建议重写了该行,但此后有一些更改

import .sampler

给出invalid syntax错误

解决方案

^{pr2}$

现在from LTransform import encoder工作得很好。在

相关问题 更多 >