首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

未找到__init__.py和import提供神秘模块的简单案例

在Python中,init.py是一个特殊的文件,用于标识一个目录是一个Python包。当我们使用import语句导入一个模块时,Python会在指定的路径中查找该模块,并且会自动执行该模块中的代码。如果在导入模块时未找到init.py文件,Python会将该目录视为普通目录,而不是一个包。

下面是一个简单的案例,演示了未找到init.py文件和导入神秘模块的情况:

假设我们有以下目录结构:

代码语言:txt
复制
- my_package/
  - my_module.py
  - my_subpackage/
    - my_submodule.py

在my_module.py中,我们定义了一个函数:

代码语言:txt
复制
def hello():
    print("Hello, world!")

在my_submodule.py中,我们定义了另一个函数:

代码语言:txt
复制
def goodbye():
    print("Goodbye, world!")

现在,我们尝试在另一个Python文件中导入这两个模块:

代码语言:txt
复制
from my_package.my_module import hello
from my_package.my_subpackage.my_submodule import goodbye

hello()
goodbye()

当我们运行这个Python文件时,会输出以下结果:

代码语言:txt
复制
Hello, world!
Goodbye, world!

这个案例中,我们成功导入了my_module.py和my_submodule.py中的函数,并且成功调用了它们。注意,这个案例中并没有init.py文件,但我们仍然能够正常导入模块。

在这个案例中,我们没有提到任何腾讯云的相关产品,因为与init.py和import相关的内容与云计算品牌商无关。如果您有其他关于云计算或其他方面的问题,我将很乐意为您提供帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python基础-6 模块

6.模块模块modules 在之前程序里,你可能用过类似from math import pi语句来导入变量或函数。这其实就是在使用模块。...使用模块好处:模块化,每个模块实现相关功能;避免文件过长混乱。 创建模块 新建一个文件(文件名为模块名.py),在文件里写程序。...举个例子:创建一个三角形相关模块: 新建文件tri_f.py,然后在里面写入: import math print("tri_f 模块 开始") def edge_length(a, b, c...优先查找包中定义函数、类或变量等,未找到则假定 item 是模块,并尝试加载模块。如果仍然找不到 item,则触发 ImportError 异常。...因此,使用 from sound.effects import *只会导入在__init__.py中__all__变量里模块

34220

Python import同级modul

简单说,就是将不同功能代码,分到不同目录文件中,代码中涉及到同级目录调用,问题就出来了“SystemError: Parent module '' not loaded, cannot perform... from ..Model.ObjectFile import * 修改OperateExcel.py 查看一下,该文件在启动时加载了哪些路径。...Python33\\DLLs',  'C:\\Python33\\lib',  'C:\\Python33',  'C:\\Python33\\lib\\site-packages'] 问题貌似明朗化,加载时未找到加载路径...曾经尝试修改Operate目录下__init__.py文件(该文件默认为空)。...将Model目录、Operate目录封装到package目录下,并且在package目录下创建空__init__.py文件(这个很重要,否则在跨模块调用时会提示错误,因编译程序未将package看作是

84210
  • Python 包管理

    模块搜索路径存储 什么是模块搜索路径 加载模块时候,系统会在哪些地方寻找此模块 系统默认模块搜索路径 import sys sys.path 属性可以获取路径列表 #...---|---|--- __init__.py |---|---|--- 子包模块1 |---|---|--- 子包模块2 包导入操作 import package_name 直接导入一个包...package_name as p - 具体用法跟作用方式,跟上述简单导入一致 - 注意是此种方法是默认对__init__.py内容导入 - import package.module...- 导入当前包 `__init__.py` 文件中所有的函数类 - 使用方法 func_name() class_name.func_name...import 完整包或者模块路径 __all__ 用法 在使用from package import 时候, 可以导入内容 __init__.py 中如果文件为空,或者没有 __all__

    698107

    【Python包】包概念、2种建立包方式、包使用

    一、包(Package)概念、2种建立包方式1》包概念:包是一个包含多个模块特殊目录,目录下有一个特殊文件__init__.py1.1包名命名方式:命名方式变量名一样,小写字母+_(小写字母加个下划线...,不要以数字开头)1.2使用包好处:使用import 包名 可以一次性导入包中所有的模块2》2种建立包方式2.1 使用目录手动建立包步骤:点击我自己文件名PythonProject鼠标右键——》点击...(如果右侧上方没有显示__init__.py,在左侧目录中双击建立好__init__.py文件就会出现了。)...__init__、外界导入包)2.1》__init__.py要在外界使用包中模块,需要在__init__.py中指定对外界提供模块列表# 从 当前目录 导入 模块列表from . import 模块名...1from . import 模块名22.2》案例演练:新建一个pg_message包在目录下,新建两个文件send__message receive_message在send__message

    1.3K10

    odoo 开发入门教程系列-模块交互

    Odoo提供了一个开发票模块,因此直接从我们房地产模块创建发票是很简单,也就是说,一旦某个房产设置为“已售出”,就会在Invoicing应用程序中创建发票 一个具体示例: 记账凭证(Account...如果我们打算将我们应用程序卖给房地产代理,有些人可能想要发票功能,但有些人可能不想要。 链接模块(Link Module) 此类使用案例常见方法是创建“链接”模块。...在我们案例中,该模块依赖estate account,包括房产发票创建逻辑。采用这种方式,estateaccount模块可以独立安装。当两者都安装后,链接模块提供新功能。...这是意料之中,因为你模块依赖它。 如果你卸载Invoicing模块,你模块也会被卸载。 说明:__init__.py为空 重启服务,安装模块 创建发票 是时候生成发票了。...不幸是,没有一种简单方法可以知道如何在Odoo中创建任何给定对象。大多数时候,有必要查看其模型,以找到所需字段并提供适当值。 学习一个好方法是看看其他模块是如何完成你想做事情

    1.7K10

    Python3 与 C# 扩展之~模块专栏

    C,发现每个文件开头都有一个 #include 这个就类似我们说模块导入了,咱们Python模块导入Java有点像用 import 来导入 先看个例子 ~ 我们定义了一个test.py...(少用) from模块import 好处:使用起来方便了,坏处:容易与当前执行文件中名字冲突 2.模块简单自测试 小明恍然大悟,盯着 __name__看了好久,然后结合前面的知识,乘着旁边位置电脑没人...我们平时使用时候: 外部不需要引用函数全部定义成private,只有外部需要引用函数才定义为public,然后导入时候尽量使用 from...import 3.2.通过_all_来控制 来个案例即可...datetime.datetime.now().strftime("%Y-%m-%d %X") 主要是时间相关封装,案例在time模块下面: import time# 时间戳,结果是float类型...,要注意: 模块名要遵循Python变量命名规范,不要使用中文、特殊字符 模块名不要和系统模块名冲突(标准库) 下面我们来一个简单案例: 自己定义一个包,目录结构如下:( __init__.py是空文件

    1.2K50

    Python3 与 C# 扩展之~模块专栏

    C,发现每个文件开头都有一个 #include 这个就类似我们说模块导入了,咱们Python模块导入Java有点像用 import 来导入 先看个例子 ~ 我们定义了一个test.py...(过会讲)变量函数都被导入进来了(少用) from模块import 好处:使用起来方便了,坏处:容易与当前执行文件中名字冲突 2.模块简单自测试 小明恍然大悟,盯着 __name__看了好久,...datetime.datetime.now().strftime("%Y-%m-%d %X") 主要是时间相关封装,案例在time模块下面: import time # 时间戳,结果是float...print(test_list) [1, 5, 7, 9, 3] # 简单验证码例子 import random def get_code(n): """简单验证码""" code...,要注意: 模块名要遵循Python变量命名规范,不要使用中文、特殊字符 模块名不要和系统模块名冲突(标准库) 下面我们来一个简单案例: 自己定义一个包,目录结构如下:( __init__.py是空文件

    1.4K50

    Python学习笔记(五)·模块

    当一个模块编写完毕,就可以被其他地方引用。我们在编写程序时候,也经常引用其他模块,包括 Python 内置模块来自第三方模块。 (3)使用模块还可以避免函数名变量名冲突。...__init__.py可以是空文件,也可以有 Python 代码,因为__init__.py本身就是一个模块,而它模块名就是mycompany。 类似的,可以有多级目录,组成多级层次包结构。...在命令提示符窗口下尝试运行pip,如果 Windows 提示未找到命令,可以重新运行安装程序添加pip。...我们推荐直接使用Anaconda,这是一个基于 Python 数据处理科学计算平台,它已经内置了许多非常有用第三方库,我们装上 Anaconda,就相当于把数十个第三方模块自动安装好了,非常简单易用...() 其他 import 用法: 使用 from import 保留字共同完成: from import from import *

    93430

    解决python3中关于import疑难杂症

    __init__.py为空时仅用于标识当前这个文件夹是一个包package __all__变量指明当该包被import *时,哪些模块module会被导入 可以利用__init__.py对外提供类型、变量及接口...:提供文件目录等系统级操作 sys:提供对解释器相关操作 hashlib:提供加密相关操作,替代了md5sha模块 shutil:提供文件、文件夹压缩包等处理模块 configparser...:提供对特定配置操作 logging:提供日志功能 timedatetime:提供时间相关操作 random:提供随机数操作 jsonpickle:提供序列化操作 shelve:提供简单...绝对导入与相对导入 绝对导入相对导入概念只针对于包内模块导入包内模块,注意如果foo.pybar.py在同一个非包(没有__init__.py文件)目录下,那么它们之间可以互相import,不存在绝对导入相对导入问题...包导入 包导入模块导入基本一致,只不过导入包时会执行__init__.py

    1.7K30

    Python __init__.py

    编写Python代码(不建议在__init__中写python模块,可以在包中在创建另外模块来写,尽量保证__init__.py简单) __init__.py 文件作用是将文件夹变为一个Python...__init__.py中还有一个重要变量,__all__, 它用来将模块全部导入。 ? ? 这时就会把注册在__init__.py文件中__all__列表中模块包导入到当前文件中来。...要想清楚理解__init__.py文件作用,还需要详细了解一下import语句引用机制: 导入包 多个相关联模块组成一个包,以便于维护使用,同时能有限避免命名空间冲突。...这里首先需要明确包(package)概念。什么是包(package)?简单来说,包是含有python模块文件夹。一个python模块(module)为一个py文件,里面写有函数类。...我们有时会使出一招“全部导入”,也就是这样: from PackageName import * 这时 import 就会把注册在包 __init__.py 文件中 __all__ 列表中模块子包导入到当前作用域中来

    1.3K30

    Python 模块

    模块中定义 全局变量 、函数、类 都是提供给外界直接使用 工具 模块 就好比是 工具包,要想使用这个工具包中工具,就需要先 导入 这个模块 1.2 模块两种导入方式 1)import 导入...使用 模块提供工具 —— 全局变量、函数、类 使用 as 指定模块别名 如果模块名字太长,可以使用 as 指定模块名称,以方便在代码中使用 import 模块名1 as 模块别名 注意...python包不是这种包 概念 包 是一个 包含多个模块 特殊目录 目录下有一个 特殊文件 __init__.py 包名 命名方式 变量名一致,小写字母 + _ 好处 使用 import...包名 可以一次性导入 包 中 所有的模块 案例演练 新建一个 hm_message 包 在目录下,新建两个文件 send_message receive_message 在 send_message...,需要在 __init__.py 中指定 对外界提供模块列表 # 从 当前目录 导入 模块列表 from . import send_message from . import receive_message

    98540

    python包-logging-hashlib-openpyxl模块-深浅拷贝-04

    包 包: # 包是一系列模块文件结合体,表现形式是文件夹,该文件夹内部通常会包含一个__init__.py文件,本质上还是一个模块 包呢,就是前两篇博客中提到模块四种表现形式中第三种 # 把一系列模块...(可能导致程序停止运行) ''' 简单日志案例 import logging logging.basicConfig(filename='access.log',...若同时列出了filenamestream两个参数,则stream参数会被忽略。 ''' 发现上述案例运行后日志文件中有乱码,且只出现在了文件里,似乎格式也不是我想要,那么怎么解决呢?...很简单,看下面 在配置文件中放入logging配置字典 import os import sys BASE_DIR = os.path.dirname(os.path.dirname(__file__)...小提示:项目正式上线后要把控制台日志打印关掉,占资源(在配置字典片结尾处我有注释哦,在开发阶段可以利用控制台打印日志来调试) hashlib模块 模块简介: # hashlib提供了常见摘要算法,如

    67840

    Python中各个模块介绍使用

    在Python中有一个概念叫做模块(module),这个C语言中头文件以及Java中包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下...3、from...import* 把一个模块所有内容全都导入到当前命名空间也是可行,只需使用如下声明:from modname import * 注意:这提供了一个简单方法来导入一个模块所有项目...变量里包含当前目录,PYTHONPATH由安装过程决定默认目录。 6、模块制作 1、定义自己模块 在Python中,每个Python文件都可以作为一个模块模块名字就是文件名字。...使用from文件夹import模块 方式导入 ? 在msg文件夹下创建__init__.py文件 ? 在__init__.py文件中写入 ?...4、__all__ 在__init__.py文件中,定义一个__all__变量,它控制着from包名import *时导入模块

    1.5K80

    Python 基础(十):模块与包

    Python 有很多自带模块(标准库)第三方模块,一个模块可以被其他模块引用,实现了代码复用性。...1.2 包 包是存放模块文件夹,包中包含 __init__.py 其他模块,__init__.py 可为空也可定义属性方法,在 Python3.3 之前版本,一个文件夹中只有包含 __init_..._.py,其他程序才能从该文件夹引入相应模块、函数等,之后版本没有 __init__.py 也能正常导入,简单来说就是 Python3.3 之前版本,__init__.py 是包标识,是必须要有的...我们创建包模块最终目录结构为: package |- pg1 |- - __init__.py |- - a.py |- - b.py |- pg2 |- - __init__.py |- - c.py...变量名/函数名 下面我们使用创建好模块演示一下,如下所示: # a 模块中引入 b 模块 import pg1.b from pg1 import b # a 模块中引入 c 模块 import

    37130

    Python __init__.py 作用详解

    py文件中__all__列表中模块包导入到当前文件中来。...要想清楚理解__init__.py文件作用,还需要详细了解一下import语句引用机制: 可以被import语句导入对象是以下类型: 模块文件(.py文件) C或C++扩展(已编译为共享库或DLL文件...,解释器做以下工作: 已导入模块名称创建新命名空间,通过该命名空间就可以访问导入模块属性方法。...后面的import语句只是简单创建一个到模块名字空间引用而已。 sys.modules字典中保存着所有被导入模块模块名到模块对象映射。...导入包 多个相关联模块组成一个包,以便于维护使用,同时能有限避免命名空间冲突。

    22K10

    Python 实战项目解决循环依赖问题

    问题重现# 在一次简单代码合并后,发现 Python 项目跑不起来了,报错如下: ssh://root@192.168.226.76:22/usr/bin/python3 -B -u /tmp/pycharm_project...模块初始化时被导入时进行,就是说每一次 import 都会执行 __init__.py代码。...(2) 强制指定实例化顺序# 可以在整个项目的根模块 __init__.py 中将所有子模块依赖一遍,调整可能出现循环依赖顺序,就可以避免后期模块间依赖时产生不可预知循环依赖问题。...也可以在模块提供一个 init 方法,在需要地方手动控制实例化顺序,避免导入时意外循环依赖。...参考文献# python导入模块交叉引用 python项目内import其他内部package模块正确方法 如何避免Python循环导入问题 Python 中循环 import 造成问题如何解决

    22030

    Python 实战项目解决循环依赖问题

    问题重现# 在一次简单代码合并后,发现 Python 项目跑不起来了,报错如下: ssh://root@192.168.226.76:22/usr/bin/python3 -B -u /tmp/pycharm_project...模块初始化时被导入时进行,就是说每一次 import 都会执行 __init__.py代码。...(2) 强制指定实例化顺序# 可以在整个项目的根模块 __init__.py 中将所有子模块依赖一遍,调整可能出现循环依赖顺序,就可以避免后期模块间依赖时产生不可预知循环依赖问题。...也可以在模块提供一个 init 方法,在需要地方手动控制实例化顺序,避免导入时意外循环依赖。...参考文献# python导入模块交叉引用 python项目内import其他内部package模块正确方法 如何避免Python循环导入问题 Python 中循环 import 造成问题如何解决

    34020
    领券