从同级目录导入-Python 3.7

问题描述 投票:0回答:1

我已经阅读了一些有关Python中的模块和软件包的文章(包括他们自己的教程),但是无法使其在我的项目中正常工作。我正在使用Python 3.7.5

这是我的目录结构:

framework/
    __init__.py
    build/
    classifiers/
    extraction/
        extractionFile.py
    quality/
    utils/
        utilsFile.py

在extractFile.py上,我有这行:

from ..utils.utilsFile import functionName

但是当我从提取目录运行extractFile.py时,出现以下错误:

Traceback (most recent call last):
  File "extractionFile.py", line 25, in <module>
    from ..utils.utilsFile import functionName
ImportError: attempted relative import with no known parent package

如果我使用以下命令从框架目录中运行extractingFile.py:

from utils.utilsFile import functionName

它正常工作。

因此,如何从兄弟目录中将utils目录仅转换为软件包,以便导入其中的任何文件?

注意:我只需要在该项目上使用该软件包。

注意:我试图获得一个永久性的解决方案,因此sys.path.insert()似乎不是一个选择。

python-3.x module package
1个回答
0
投票

相对导入仅在每个库路径的根目录内起作用,并且您不能使用相对导入来到达库路径的根目录的父目录。如果从您自己的项目中导入模块,则运行解释器的是库的根路径,因此,要导入utils/utilsFile.py,必须从extractionFile.py而不是framework运行extraction

© www.soinside.com 2019 - 2024. All rights reserved.