导入另一个文件的文件时,找到“未命名的模块”

时间:2018-10-23 15:28:46

标签: python python-2.7 import

所以我的目录当前看起来像这样

src \aws_resources \s3 s3file.py util.py test mytest.py

我正在运行mytest.py文件,它实际上是导入s3文件,而s3文件则导入util.py文件

我的mytest.py说

from src.aws_resources.s3 import *

但是当我运行测试文件时出现错误

ImportError: No module named aws_resources.util

我尝试添加

from src.aws_resources import util到mytest.py,但仍然出现相同的错误。任何建议,将不胜感激。

2 个答案:

答案 0 :(得分:0)

从您的文件夹结构看,导入行应为:

from src import util

答案 1 :(得分:0)

您当前的工作目录为test,这意味着任何import行都会在test文件夹中查找模块,如果找不到,请转到{中存在的其他路径{1}}(例如PYTHONPATH)进行查找。

这是我的两个假设:

1。)sys.path不属于您的PYTHONPATH
2.)在您的src中,您有以下一行(或类似内容):s3file.py

由于from aws_resources.util import *不是aws_resources下的有效文件夹,并且在您的test中都找不到该文件夹​​,因此Python解释器无法找到该模块,因此{ {1}}。

您可以尝试以下操作之一:

1。)重组文件夹结构,以便可以从当前工作目录中立即引用所有内容。
2.)如果要从另一个工作目录导入sys.path中的ImportError行,则为该行。
3.)将from aws_resources.util import *添加到您的PYTHONPATH中,或将其移动到PATH / PYTHONPATH中标识的文件夹中,以便您始终可以引用它。

该方法实际上取决于您的s3file.py用例以及在其他地方引用的频率。