如何使用复杂的目录结构PYTHONPATH?

2022-03-31 00:00:00 python python-import pythonpath

问题描述

考虑以下文件目录结构:

project
|  django_project
|  |  __init__.py
|  |  django_app1
|  |  |  __init__.py
|  |  |  utils
|  |  |  |  __init__.py
|  |  |  |  bar1.py
|  |  |  |  ...
|  |  |  ...
|  |  django_app2
|  |  |  __init__.py
|  |  |  bar2.py
|  |  |  ...
|  |  ...
|  scripts
|  |  __init__.py
|  |  foo.py
|  |  ...

如何在foo.py中使用sys.path.append,以便可以使用bar1.py和bar2.py?
导入会是什么样子?


解决方案

出于可移植性的原因,使用相对路径要好得多。

foo.py脚本的顶部添加以下内容:

import os, sys
PROJECT_ROOT = os.path.join(os.path.realpath(os.path.dirname(__file__)), os.pardir)
sys.path.append(PROJECT_ROOT)

# Now you can import from the django_project package
from django_project.django_app1.utils import bar1
from django_project.django_app2 import bar2

相关文章