Python 的嵌套导入
项目描述
嵌套导入 (Nimp)
允许嵌套导入,类似于Java。Nimp 安装了一个无害的元导入钩子,以支持 嵌套包,即位于公共命名空间下的多个包。这在Java中很常见,例如 com.foo.bar.spam 和 com.foo.bar.eggs,以及在Haskell和几种其他语言中。Nimp基本上允许包“注入”到共享命名空间中。
与Python 2.3-2.7和3.0及以上版本兼容。
您可以在我的 博客 上了解更多关于 nimp 和 __lazy__ 的信息。
使用方法
import nimp nimp.install()
您可以将这两行添加到您的 site.py 脚本中,这样您就可以立即获得Nimp。
优点
允许独立分发“插件”包:考虑一个像 twisted 这样的项目,由几个附加包组成(但不需要过多修改 distutils)。
一个项目可能依赖于包 X.Y,而不必依赖于 X。
这些嵌套包可以位于您的python路径上的任何位置(它们不必位于同一目录中)
一个小型(小于100 LoC)独立模块,为您完成所有魔法操作 —— 无需第三方合作。
示例布局
考虑以下目录结构,位于您的python路径上的任何位置(例如,site-packages)
site-packages/ com-ibm-storage/ files... com-ibm-storage-plugins/ files... com-ibm-pythontools/ files...
在调用 nimp.install() 之后,以下导入将按预期工作
import com # a namespace package (empty) import com.ibm # a namespace package (empty) import com.ibm.pythontools # a real package com.ibm.pythontools.myfunc(1,2,3) # and of course `from x import y` works too from com.ibm.storage import ScsiDisk # note how the `plugins` package is "injected" into `storage` from com.ibm.storage.plugins import MySQLPlugin
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
nimp-0.9.2.tar.gz (3.9 kB 查看哈希)
构建分布
nimp-0.9.2.win32.exe (202.2 kB 查看哈希)
关闭
nimp-0.9.2.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a512f3691aa4d4af1ff448f220deaacb5b6402061476856833392a2c76b9f6bc |
|
MD5 | 23d74ee72c0208e02c9bbee0f181d95f |
|
BLAKE2b-256 | 40dfccc932ce29f90d4efb52f401e434bb945697c9d8eac8d2da3aa469cde97b |
关闭
nimp-0.9.2.win32.exe的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a5dc47774afc528b661ca8af5ab0b6f854309c5ad4222f88568bac13016eb46f |
|
MD5 | a6f6ed5f7a04de158c8bed483e599fd3 |
|
BLAKE2b-256 | 502e1fb95e52564df24165ed632e93976fcba87140469e78a959a245d37c5a20 |