Skip to main content

无需头痛的 Python 导入

项目描述

路径导入

这个简单的 python 模块允许优雅地处理 python 上的项目导入,而不会让人头疼。

为什么是路径导入?

在 python 项目中使用 import 语句可能会导致许多令人头疼的问题和微妙的问题。在 python 中导入需要深入了解解释器如何在运行时加载其他模块和脚本。当您的项目部署在您的开发环境之外时,滥用导入可能会导致问题;甚至在此之前,进口可以隐藏许多陷阱。这个包想要简化 python 用户的生活,允许他们毫不费力地从同一个项目的其他脚本中执行导入。

安装

pathimport 模块可以通过 pip 安装。

pip install pathimport

用法

假设有一个具有以下结构的 python 项目。

module
├── submodule_a                            
│   └── script_a.py                    
├── submodule_b
│   └── script_b.py
└── common.py

在里面common.py我们定义了以下函数,

def fun_common():
    # do things...

而在script_a.py我们定义了以下内容。

def fun_a():
    # do things...

为了避免使用相对导入,可以使用 pathimport 将这些函数加载到script_b.py.

from pathimport import set_module_root
set_module_root("..")

# from now on all the imports can be
# perfomed from the module root
from common import fun_common
from submodule_a import fun_a

if __name__ == "__main__":
    fun_common()
    fun_a()

可选地,模块/项目名称可以用作前缀。

from pathimport import set_module_root
set_module_root("..", prefix=True)

from module.common import fun_common
from module.submodule_a import fun_a

引擎盖下

为了解决解释器导入歧义,set_module_rootpathimport 修改PATH环境变量以指向模块根目录(如果prefix设置为True ,则指向前面的目录)。出于这个原因,解释器将能够正确地本地化和从文件系统导入您的脚本,而不会出现其他问题,具体取决于当前工作目录,或者源代码是作为脚本还是作为模块启动的。

其他资源

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pathimport-0.0.3.tar.gz (2.8 kB 查看哈希

已上传 source

内置分布

pathimport-0.0.3-py3-none-any.whl (3.0 kB 查看哈希

已上传 py3