首页 > 解决方案 > 从上面的目录导入模块 - Python2

问题描述

所以这是我的文件树:

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文件尝试从../homenot导入/project,因此他找不到moduleToImport.py.

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

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

但如果我使用相对路径(这将是必要的),它就不起作用,比如:

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

因为它会出现和以前一样的问题:他从../home.

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

有任何想法吗?

标签: pythonpython-import

解决方案


文件夹

project/
  moduleToImport.py
  folder1/
    willImport.py

将导入.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()

模块导入.py

def func():
    print("Success")

输出:

Success

推荐阅读