桂平市住房和城乡建设局网站,wordpress 做图片,虚拟机wordpress安装教程视频,新密网站前言
单纯不喜欢 python 对 点开头的包的限制#xff0c;好麻烦#xff0c;遂写了本包#xff0c;来解决这个问题启用本模块后#xff0c;你可以随时使用 单个点来导入当前目录的模块#xff0c;也可以使用多个 点导入多级父目录内的模块#xff0c;而不会报错烦人的模块…前言
单纯不喜欢 python 对 点开头的包的限制好麻烦遂写了本包来解决这个问题启用本模块后你可以随时使用 单个点来导入当前目录的模块也可以使用多个 点导入多级父目录内的模块而不会报错烦人的模块相对路径限制错误。
解决
写了一个强制相对导入特性修改了 import 的实现逻辑从而允许导入任意父级的包而不会报以下错误。 ImportError attempted relative import with no known parent package ImportError attempted relative import beyond top-level package
修改import逻辑的方法来自这里 修改 python3 的 import 函数从而实现挂钩hook或更改其行为 https://blog.csdn.net/ONE_SIX_MIX/article/details/128717665
仓库
githubhttps://github.com/One-sixth/force-relative-import
以下为搬过来的仓库介绍。
force-relative-import
这是一个强制启用python相对导入的库允许你忽略python的相对导入限制。
安装
pip install -U force-relative-import使用方法
目录示例example_N 均为直接启动目标
├─example
│ │ example_1.py
│ │ example_2.py
│ │ example_3.py
│ │ moduleA.py
│ │
│ └─example_4
│ │ example_4.py
│ │
│ └─example_5
│ example_5.py方法1 (推荐用于模块编写)
使用作用域以避免意外情况。
example_1.py
from force_relative_import import enable_force_relative_importwith enable_force_relative_import():from .moduleA import return_goodprint(return_good())
example_4.py
from force_relative_import import enable_force_relative_importwith enable_force_relative_import():from ..moduleA import return_goodprint(return_good())
example_5.py
from force_relative_import import enable_force_relative_importwith enable_force_relative_import():from ...moduleA import return_goodprint(return_good())
方法2
使用函数。
example_2.py
from force_relative_import import enable_force_relative_import, global_enable_force_relative_import, global_disable_force_relative_importglobal_enable_force_relative_import()with enable_force_relative_import():from .moduleA import return_goodglobal_disable_force_relative_import()print(return_good())
方法3 (推荐仅用于主程序入口)
仅建议用于主程序不要用于模块或包。
example_3.py
from force_relative_import import enable_nowfrom .moduleA import return_goodprint(return_good())