另一种相对进口

import_relative的Python项目详细描述


简介

与python的import相对相比,更类似于需要ruby的相对

当您有一个包含嵌套子模块的大型包时,这允许嵌套子模块相互引用,而不必拉入、了解或显式导入整个顶级树。

概要

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或python 3中使用importlib。他们似乎错了,因为他们找不到上层或类似的东西。

错误

抱歉,我们不做“从列表”。

各种包装系统,如PIP和装载机,可能无法与此配合使用。 这个密码很脆弱。

我一直想相信,已经有一种方法可以从源代码树中开发出来(不是distutils惯用的那种复制),不需要修改搜索路径,在模块中有演示代码,这样它们就可以像主程序一样运行,并作为一个模块嵌入到整个系统中。

在那之前,我有这个。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带有servlet、jsp和数据库的应用程序的java结构   java Admob本机Express广告   java无法在会话超时时获取会话范围的bean   java的“xmlns=”http://www.intellij.com/uidesigner/form/“`由Intellij以.xml格式标记为红色   迭代器在Java中重写Iterables<Obj>的正确方法   java如何刷新我的默认表模型   无效URL上的java PrettyFaces重定向循环   java如何将JSON数组传递给SpringMVC?   java如何从setOnClickListener获取数据并将其传递给倒计时程序   从java运行grep命令后bash获取错误   java[Ljava.lang.String;@5d79a22d结果   java错误p:ajax更新   请在这段代码中解释java instanceof关键字