从上面的目录导入模块-Python2

时间:2018-12-20 12:44:03

标签: python python-import

这是我的文件树:

project/
   moduleToImport.py
   folder1/
      willImport.py

我无法在moduleToImport.py文件中导入willImport.py。 我这样执行:

usr@machine:~/home$ /test/anotherFolder/project/folder1/willImport.py --args "a" "b" "c"

因此,当我尝试此解决方案时:

from .. import moduleToImport

willImport.py文件尝试从../home而不是/project导入,因此他找不到moduleToImport.py

我发现的另一个解决方案是:

import sys
sys.path.append("/path/to/dir")
from app import object

但是,如果我使用相对路径(这将是必需的),则无法正常工作,例如:

sys.path.append("..")
from .. import moduleToImport

因为它将具有与以前相同的问题:他从../home导入。

主要问题是,我不能使用绝对路径,因为它将改变。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

文件夹

project/
  moduleToImport.py
  folder1/
    willImport.py

willImport.py

import os
import sys

runPath = os.path.dirname(os.path.realpath(__file__))
sys.path.append(os.path.join(runPath, ".."))

from moduleToImport import func

func()

moduleToImport.py

def func():
    print("Success")

输出:

Success