不同类型的相对导入
项目描述
简介
更类似于Ruby的require_relative,而不是Python的import_relative。
当您有一个包含嵌套子模块的大型包时,这允许嵌套子模块相互引用,而不需要引入或了解整个顶层树或显式导入整个顶层树。
摘要
from import_relative import import_relative, get_srcdir # Below "trepan" is my top-level namespace # 'io' is the directory this file is in. Mbase = import_relative('base', '.', 'trepan) # Adds trepan.io.base # The following adds trepan.lib.bytecode Mbytecode = import_relative('bytecode', '..lib', 'trepan) class MyClass(Mio.InputBase): # Use name from Mio ... # like os.path.realpath(os.path.dirname(__file__)) srcdir = get_srcdir()
不进行导入路径搜索。如果导入项不存在,我们将失败。
理由
在我的开发中,每个模块(Python中的一个文件)可以独立运行。当作为主程序调用时,它运行示例代码。每个模块负责导入它需要的其他模块。
我无法使相对导入工作,也无法在Python 2或3中使用importlib。它们似乎会出错,因为它们找不到上级或类似的东西。
错误
抱歉,我们不处理“from列表”。
各种打包系统如pip和加载器可能无法与此一起使用。此代码很脆弱。
我总是想相信,已经存在一种方法可以从源代码树(不是distutils通常所做的副本)开发,不需要更改搜索路径,并且可以在模块中有示例代码,这样它们就可以像主程序一样运行,也可以作为整个系统中的模块嵌入。
在此之前,我只有这个。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
import_relative-0.2.3.tar.gz (19.8 kB 查看哈希值)
构建版本
import_relative-0.2.3-py3.3.egg (7.6 kB 查看哈希值)
import_relative-0.2.3-py3.2.egg (7.5 kB 查看哈希值)
import_relative-0.2.3-py2.7.egg (7.5 kB 查看哈希值)
import_relative-0.2.3-py2.6.egg (7.5 kB 查看哈希值)
import_relative-0.2.3-py2.5.egg (7.5 kB 查看哈希值)
import_relative-0.2.3-py2.4.egg (7.6 kB 查看哈希值)