python,从父目录导入包

时间:2016-08-21 07:19:36

标签: python python-import python-packaging

我的项目树是这样的:

maindir\
    dir1\
        MAINSCRIPT.py
    dir2\
        scriptA.py

MAINSCRIPT.py是我的主要脚本!

如何从scriptA.py

导入MAINSCRIPT.py

2 个答案:

答案 0 :(得分:3)

首先,这不是技术上的python包,或者每个文件夹中都有__init__.py。而且我很困惑你为什么要把你的主程序放在你的一个文件夹中。但是我经常用来导入一个不在Python定期检查路径中的文件是

import sys; sys.path.insert(0, '../dir2'); import scriptA

希望有所帮助! 有关详细信息:more on path insertion

答案 1 :(得分:1)

以下很好的解决方案来自ImportError: attempted relative import with no known parent package

您可以使用相对导入。首先更改目录结构,如下所示:

maindir\        
    main.py
    lib\
        __init__.py
        dir1\
            __init__.py
            MAINSCRIPT.py
        dir2\
            __init__.py
            scriptA.py

<强> MAINDIR \ lib中\ DIR1 \ MAINSCRIPT.py

from ..dir2 import scriptA 
...

<强> MAINDIR \ main.py

import lib.dir1.MAINSCRIPT

现在,我们可以从maindir\

调用脚本
python main.py