如何在相同的根目录中但在另一个子目录中导入Python模块?

时间:2019-01-25 16:57:38

标签: python python-3.6 python-module

我在一个名为“ API”的父文件夹中有许多Python文件,我正在尝试将它们链接在一起:

  

API / auth / module1.py
  API / subfolder / prgm.py

从父文件夹到子文件夹,我有一个 init .py文件,该文件包含要调用的路径或程序名称,但是当我执行具有以下内容的'/subfolder/prgm.py'时,调用导入“ module1.py”,执行时出现以下错误:

machine01% ./prgm.py
Traceback (most recent call last):
  File "./prgm.py", line 2, in <module>
    from API.auth.module1 import authFunction
ModuleNotFoundError: No module named 'API'

这是我在'prgm.py'中的import语句:

from API.auth import module1

此问题与先前的问题有所不同,因为我试图获取一个子文件夹中已经存在的python脚本,以访问另一个子文件夹中但在同一父“ API”文件夹下的模块。先前的问题涉及基于父文件夹的python脚本和位于子文件夹中的调用模块。

2 个答案:

答案 0 :(得分:1)

尝试从。auth导入模块1“”“尝试”“”吗?

答案 1 :(得分:1)

如果您确实需要运行API / subfolder / prgm.py,然后依次导入API / auth / module1.py

在prgm.py中,您可以向sys.path中添加一个父目录(即“ API”),如下所示:

import os, sys, inspect
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(currentdir)
sys.path.insert(0,parentdir)

现在您可以从“ API”内部导入任何内容:

from auth import module1