尽管存在__init__.py,仍无法从模块导入

时间:2019-12-06 16:32:11

标签: python

我具有以下文件夹结构

project_folder/
      pyutils/
              __init__.py
              script1.py
              script2.py 
              lambdas/
                  __init__.py
                  lambda_script1.py
                  lambda_script2.py
              lambda_tests/
                  __init__.py
                  lambda_test1.py

lambda_test1.py内,我进行了以下尝试

from lambdas.lambda_script1 import * # errors saying no module named lambdas
from .lambdas.lambda_script1 import * # errors saying ModuleNotFoundError: No module named '__main__.lambdas'; '__main__' is not a package
from ..lambdas.lmabda_script1 import * # errors saying tried to import above top level path

我正在尝试使用类似的命令

从项目文件夹中运行测试
python pyutils/lambda_tests/lambda_test1.py

但是所有选项似乎都不起作用

如果我从IPython文件夹中运行pyutils并运行from lambdas.lambda_script1 import *,它将起作用。这是python路径问题吗?

我还尝试在项目文件夹中添加__init__.py,但仍然无法正常工作

1 个答案:

答案 0 :(得分:0)

project_folder/
      pyutils/
              __init__.py
              script1.py
              script2.py 
              lambdas/
                  __init__.py
                  lambda_script1.py
                  lambda_script2.py
              lambda_tests/
                  __init__.py
                  lambda_test1.py

首先,将pythonpath导出为项目的根

export PYTHONPATH=/path/to/project_folder/py_utils

然后您将使用以下导入:

import script1

import script2

import lambdas.lambda_script1

import lambdas.lambda_script2

import lambdas_tests.lambda_test1