首页 > 解决方案 > 如何在 Python 中导入包

问题描述

我的项目空间是这样的:

Project
   Functions_Folder/
                   __init__.py
                   Folder1/
                          __init__.py
                          Function1.py
                          Function2.py
                          Function3.py
                   Folder2/
                              __init__.py
                              Function4.py
                              Function5.py
                              Function6.py
   Codes_Folder/
                  script1.py
                  script2.py

我需要导入 and 的script1.py一些函数,Folder1但是Folder2这些函数也必须在同一目录中导入函数,我的意思是,例如Function4.py必须导入Function6.pyFunction3.py

请帮忙。

标签: pythonpython-3.7

解决方案


您可以使用相对导入

├── test
│   ├── __init__.py
│   ├── a
│   │   ├── one.py
│   │   └── two.py
│   └── b
│       ├── __init__.py
│       └── one.py
└── test.py

其中one.py模块中的文件a很简单

from .two import a_two

def a_one(i):
    return 10*a_two(i)

模块中的two.py文件a

def a_two(i):
    return 5*i

模块中的one.py文件b

from ..a.one import a_one

def b_one(i):
    return a_one(i)

from ..a.one import a_onefrom .two import a_two使用相对导入。

整个模块可以通过运行test.py文件进行测试,即

from test.b.one import b_one

print(b_one(1))

至于test在脚本中导入模块的问题,在macOS和linux下,需要为模块设置PYTHONPATH.bashrctest

export PYTHONPATH=the_path_to_module_test:$PYTHONPATH


推荐阅读