Python 从其他目录导入
我正在使用以下文件夹体系结构构建Python应用程序(大致如下所示): 这对我来说是理想的文件/文件夹层次结构,但是,我对如何从外部文件夹引用模块感到困惑。例如,Python 从其他目录导入,python,import,directory,pythonpath,package-managers,Python,Import,Directory,Pythonpath,Package Managers,我正在使用以下文件夹体系结构构建Python应用程序(大致如下所示): 这对我来说是理想的文件/文件夹层次结构,但是,我对如何从外部文件夹引用模块感到困惑。例如,myapp\u service1\u start.py需要引用myapp\u common1.py和myapp\u common2.py中的函数 我知道我需要以某种方式添加对系统path或pythonpath的引用,但我不确定在代码中这样做的最佳方式。或者更确切地说,我甚至可以在代码中这样做 我该怎么做? 我看过很多关于创建一个完整的P
myapp\u service1\u start.py
需要引用myapp\u common1.py
和myapp\u common2.py中的函数
我知道我需要以某种方式添加对系统path
或pythonpath
的引用,但我不确定在代码中这样做的最佳方式。或者更确切地说,我甚至可以在代码中这样做
我该怎么做?
我看过很多关于创建一个完整的Python包并通过pip
安装的帖子,但这对我来说似乎有些过分了 一种方法是让每个myapp\u服务*\u start.py
文件将myapp/
目录添加到sys.path
例如,将一个名为import_me.py
的文件放入myapp_service1/
中,其中的代码将“向上一个”目录(相对于导入文件)附加到sys.path
:
import os
import sys
import inspect
this_dir = os.path.dirname(inspect.getfile(inspect.currentframe()))
src_dir = os.path.join(this_dir, '..')
sys.path.insert(0, src_dir)
然后,在您的myapp\u service1\u start.py
中,您可以执行以下操作:
import import_me
from common import myapp_common1
from common import myapp_common2
当然,通过将一个(可能为空的)\uuu init\uuuuuuuuuuuuupy
文件放入Python包中,确保将common
目录设置为Python包
import import_me
from common import myapp_common1
from common import myapp_common2