Python 3.x Python3.x多级导入

Python 3.x Python3.x多级导入,python-3.x,Python 3.x,我正在转换为Python 3.x中的新样式相对导入。当我尝试执行从File1.py到utilsx.py的导入时,当前出现以下错误 ValueError: Attempted relative import in non-package 我有下面的文件夹结构。名为MySuite的项目包含MySuite项目中tests文件夹中的所有测试。这些测试依赖于utils项目中存在的某些实用程序 └── project ├── utils │ ├── utils1.py │

我正在转换为Python 3.x中的新样式相对导入。当我尝试执行从File1.py到utilsx.py的导入时,当前出现以下错误

ValueError: Attempted relative import in non-package
我有下面的文件夹结构。名为MySuite的项目包含MySuite项目中tests文件夹中的所有测试。这些测试依赖于utils项目中存在的某些实用程序

└── project
    ├── utils
    │   ├── utils1.py
    │   └── utils2.py
    └── MySuite
        ├── Runner.py
        └── Tests
            └── File1.py
            └── File2.py
            └── File3.py
我试图从文件1使用的导入语句是:

from .utils.utils1 import *
我还尝试:

from ..utils.utils1 import *
而我只希望他们中的一个能工作,他们也不会!有什么想法吗 更改语法,或者我忘了什么?

不要在utils之前使用任何“.”。就像你能做的那样

from utils.utils1 import *

这有帮助吗?10年前的一个问题使用了老式的相对导入。我正在尝试使用3.x中的新路径支持。虽然我已经提到了Python3,但我把我的第一句话说得更清楚了。@napuzba读起来很有趣,但它并没有解决我的Up2目录和over问题。仅签入项目(utils和MySuite)。MySuite依赖于utils项目,但不作为一个项目包含在一起。其他包含文件夹不存在,在这种情况下无法删除:(我仍在寻找解决方案。另一个注意事项是,这两个项目属于不同的所有者。删除.returns:No module name fmsPythonUtilities.testin尝试执行类似操作。export PYTHONPATH=“${PYTHONPATH}:/path/to/your/module/”或添加“utils”打包到您的python的dist-packages/side-packages。您的最后一点评论是我试图摆脱的旧的python 3之前的技术。要移动到更标准的python 3配置。很难理解为什么python团队没有使用import为路径提供其他标准语言支持。我“应该”要做的是:from.././utiL/UTILS1导入我明白我正在混合Python和C++风格编码,但是它只是为了把这个想法弄清楚。我不相信任何人会迷路。我看到这个主题有很多困惑。