2.0 __init__py及包

python2 import matplotlib.pyplot出现错误UnicodeDecodeError # 引入matplotlib.pyplot import matplotlib.pyplot as plt 出现错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0x8e in position 20: ordinal not in range(128) 对于这个问题在网上有两种解决方案: 一种是进行matplotlib的版... 阅读详情
  1. Directory

新建2个目录,a目录中有个test.py,b目录中有个run.py,现在需要在run.py中调用test.py里的方法

#a/test.py
import random


def random_sex():
    num = random.randint(1, 2)
    if num == 1:
        return '男'
    else:
        return '女'

#b/run.py
from a.test import random_sex
print(random_sex())

在pycharm中右键运行,执行成功

使用python命令运行

python b/run.py

运行失败,提示找不到模块

输出sys.path

print(sys.path)

#output
['D:\\workspace\\pycharm\\py_tools\\_case', 'C:\\Users\\javain\\.pyenv\\pyenv-win\\ver
sions\\3.9.5\\python39.zip', 'C:\\Users\\javain\\.pyenv\\pyenv-win\\versions\\3.9.5\\D
LLs', 'C:\\Users\\javain\\.pyenv\\pyenv-win\\versions\\3.9.5\\lib', 'C:\\Users\\javain
\\.pyenv\\pyenv-win\\versions\\3.9.5', 'D:\\workspace\\pycharm\\py_tools\\venv', 'D:\\
workspace\\pycharm\\py_tools\\venv\\lib\\site-packages']

当前项目的目录并没有添加在sys.path中

#b/run.py
import sys
sys.path.append(r'.')
from a.test import random_sex
random_sex()

执行python b/run.py,运行成功

注:如果py文件在根目录的话

from test import random_sex即可
  1. Python Package

每个python package都会有一个__init__.py文件

__init__.py的作用主要用来批量导入和简化导包

示例

#a/test1.py
def h():
    print('hello')
#a/test.py
import random
def random_sex():
    num = random.randint(1, 2)
    if num == 1:
        return '男'
    else:
        return '女'

如果a/__init__.py中为空的话,那么b/run.py文件使用这个包就必须按照如下方式使用

导入整个文件
from a import test
from a import test1
或者导入文件中的方法
from a.test import random_sex
from a.test1 import h 

如果a/__init__.py不为空的话,且内容如下

from a.test import random_sex
from a.test1 import h
import os

那么b/run.py中就应按如下方式使用

import a
a.random_sex()
a.h()
print(a.os.getcwd())

或者

from a import *
test.random_sex()
test.h()
print(os.getcwd())

如果__init__.py中有__all__参数的话

__all__ = ['h','random_sex','os']

则b/run.py中应按如下方式使用

import a
a.random_sex()
a.h()
print(a.os.getcwd())

如果要使用from的形式的话,需要按如下方式使用

from a import *
random_sex()
h()

从上述实验上来看,没有太大的区别

【Python】`__init__.py` 文件详解 本文针对Python开发者, 详细描述了__init__.py文件在参与包、模块、命名空间导入/重命名/初始化时的使用方法,以及其中代码的执行机制。 本文使用边执行案例,边分析,边给结论的方法,描述了__init__.py文件的四大作用。 模块搜索标记 初始化命名空间, 空间名称即为目录名 设置__all__ 通配符导入目标 为同一目录的其他模块定义命名空间。 阅读详情

相关推荐

python基础:__init__.py文件作用

__init__.py文件作用0 前言1 作为包表示2 __init__.py什么时候执行3 简化模块导入4 定义模块的方法和属性总结 0 前言 我们在pycharm等IDE中,我们可以选择新建一个python package或者一个directory。选择两种都会新建一个文件夹,不同的是,新建python package会在文件夹下自动创建一个__init__.py文件。那么这个__init__.py文件有什么作用呢?本篇文章就来一探究竟。 1 作为包表示 在IDE中新建python package会在文

Lavi的专栏 4884

python 包、模块学习总结

此外,如果Python在搜索路径上只发现了字节码文件,而没有源代码,就会直接加载字节码(这意味着你可以把一个程序只作为字节码文件发布,而避免发生源代码)。python会检查文件的时间戳,如果发现字节码文件比源码文件旧(例如,如果你修改过源文件),就会在程序运行时自动更新生成字节码代码。注意,当文件导入时,就会进行编译。遍历模块搜索路径,找到符合import语句的源代码文件后,如果必要的话,Python接下来会将其编译成字节码。顶层文件使用了在模块文件中定义的工具,而这些模块使用了其他模块所定义的工具。

liuqinhou的博客 1776

Python中__init__.py文件的作用

每个文件在其对应的包被导入时都会被执行。在文件中可以执行初始化代码、导入子模块、定义包级别变量和函数,以及控制导入行为。嵌套包结构有助于组织代码,使其更易于管理和维护。

u010674101的专栏 1199

解决h5py\_init_.py:26:FutureWarning: Conversion of the second

解决问题 h5py\_init_.py:26:FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`. from ._conv import register_converters as _register_..

hkz0704的博客 184

历年北京理工大学复试专业综合题

。

A place to record sth. 2万+

告别卡顿!用LVGL+DMA刷新STM32F407的SPI屏幕,性能提升实战

本文详细介绍了如何通过LVGL+DMA技术优化STM32F407驱动SPI屏幕的性能,实现接近60FPS的流畅刷新。从硬件瓶颈分析到SPI与DMA的精细化配置,再到LVGL的双缓冲机制与局部刷新优化,提供了一套完整的性能提升方案。特别适合嵌入式GUI开发中面临卡顿问题的工程师参考。

weixin_42531588的博客 378

运行nn/cell.py在init_pipeline出错:ImportError: cannot import name ‘utils‘ from partially initialized modu

如图,程序在运行nn/cell.py在init_pipeline出错: 运行环境见二,请问这是版本不兼容的问题吗?该如何解决?

weixin_45666880的博客 299

BIOS/UEFI完全指南:从开机自检到超频魔改的底层硬件控制

计算机启动过程始于固件层,其核心是负责硬件初始化与引导的系统软件。传统BIOS基于16位实模式,寻址能力有限,而现代UEFI采用保护模式,支持图形界面与安全启动,实现了从概念到架构的革新。这一演进带来了显著的技术价值:更快的启动速度、更强的安全性以及对大容量存储设备的原生支持。在工程实践中,无论是解决“虚拟化技术禁用”问题、调整内存XMP配置以提升性能,还是为老主板“魔改”添加NVMe支持,都需要深入理解并操作BIOS/UEFI设置。掌握这些底层交互能力,是进行硬件调试、系统优化与故障排查的关键,也是连接抽

weixin_34236869的博客 456

成功解决h5py\_init_.py:26:FutureWarning: Conversion of the second argument of issubdtype from `float` to

解决问题 h5py\_init_.py:26:FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type...

qq_34062754的博客 307

硬件工程师学习-硬件的单元测试(UT)(1)电源与时钟的测试

我们在设计的时候,通过控制电源的上电使能管脚或者通过MOSFET、或者专用的电源上电控制芯片,控制不同电源的上电时序,以确保每个芯片的电源上电时序是满足芯片的要求的。我们在测试的时候,需要对相关的要求一一测试,以确认每个上电时序满足要求的。在维基百科中,相位噪声的定义是“时域不稳定性(抖动)导致波形在相位上发生快速、短期、随机的波动,这种波动在频域中的表现即为相位噪声”。单元测试,一般是指基于开发人员自行开展的功能测试及各个功能单元的单元测试,是硬件信号级的测试,分为基本测试和信号完整性测试。

qq_43416206的博客 4032

18、地下矿山中人工智能在区分真实微震事件与噪声信号的应用

本文提出一种基于遗传编程(GP)的新型经验模型,用于地下矿山中真实微震事件与噪声信号(特别是爆破信号)的自动区分。针对传统方法和常见机器学习算法存在的黑箱问题、过拟合及准确性不足等局限,GP模型通过符号回归和进化机制生成可解释的数学表达式,具备自动特征选择能力,有效提升了分类准确率。研究使用包含100个样本的真实数据库,结合敏感性分析优化模型参数,并与线性判别分析(LDA)进行对比,结果表明GP模型在分类性能上更具优势。该模型可应用于实时微震监测系统,提高矿山安全生产水平,降低误判带来的成本开销,具有良好的

assembly8low的博客 94

FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating`

出错位置h5py_init_.py:26,包内出错,是h5py包,对h5py进行更新升级pip install h5py==2.8.0rc1 安装命令: pip install h5py==2.8.0rc1 如图所示:

尚未佩妥剑 转眼便江湖 285

YOLOv11改进策略【卷积层】| arXiv 2025 YOLO-Master中的稀疏混合专家ES-MoE 动态路由提适配 + 稀疏激活降延迟,突破精度-效率权衡

ES-MoE(Efficient Sparse Mixture-of-Experts)是为解决传统YOLO类实时目标检测器的静态计算冗余问题而提出的稀疏混合专家模块。现有YOLO架构对所有输入场景采用统一的密集计算模式,导致简单场景资源浪费、复杂场景(如密集小目标、遮挡场景)计算不足,难以平衡检测精度与推理速度。ES-MoE引入实例条件自适应计算,通过动态路由机制为不同复杂度的输入分配差异化计算资源,突破传统静态架构的精度-效率权衡限制,同时适配实时检测的轻量化需求。

Limiiiing的博客 462

python pip下载的文件结构

在C:\Users\Lenovo\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\mediapipe\__init__.py。_init_.py表示这个是一个包。

m0_59790504的博客 235

图像拼接(Image Stitching)

图像拼接(Image Stitching):是一项计算机视觉技术,它将多张重叠的图像合并为一张更大、无缝的全景图或广角视图。该技术广泛应用于全景摄影、地图制作、医学影像处理、计算机视觉及增强现实(AR)等领域。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 2503

PSM倾向性评分分析介绍、spss进行倾向性评分分析示例

PSM倾向性评分分析介绍、spss进行倾向性评分分析示例

statistics+insight+vista+power 1480

yum装docker-registry的一个坑

docker-registry依赖的python-backports-lzma-0.0.2-5.el6.x86_64.rpm包有问题,少了package描述,需要执行: bashecho -e 'from pkgutil import extend_path\n__path__ = extend_path(__path__, __nam...

weixin_34112208的博客 182

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

RASA2.0 搭建中文聊天机器人(附gitee源码)

RASA2.0搭建中文聊天机器人 环境搭建 # 优先安装这几个python包,后面缺什么补充什么 rasa==2.0.0 rasa-sdk==2.4.1 tensorflow==2.3.2 Flask==1.1.2 开始搭建 初始化项目 # 命令创建rasa项目所需的所有文件,并根据一些示例数据训练一个简单的机器人 rasa init 初始化后会创建以下文件,介绍几个重要的文件,当然这些文件结构你也可以自己调整 文件名 作用 config.yml 配置NLU和Core的文件

m0_49501453的博客 6207

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

__init__.py的作用是什么?

Python源目录中的__init__.py是什么?

p15097962069的博客 1175

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Python 包 __init__.py

文件,Python 也会把该目录当作普通包处理,这被称为 “namespace package”,其主要目标是支持更为复杂的包结构。是 Python 中的一个特殊文件,它存在于每个 Python 包中。这个文件在 Python 中是非常重要的,它告诉 Python,该目录应被视为一个 Python 包。是一个特殊的文件,用于标识该目录是一个 Python 包。文件的目录,并将其视为一个有效的包。然而,在旧版本的 Python(3.2及之前)中,请注意,随着 Python 3.3 版本的引入,

撒旦先生的博客 408

python中__init__.py是干啥用的(what is the __init__.py file for)?

参考:https://stackoverflow.com/questions/448271/what-is-init-py-for Python定义了两种类型的包,常规包(regular package)和命名空间包(namespaces package)。常规包是传统的包,因为它们存在于Python 3.2和更早的版本中。一个常规的包通常被实现为一个包含一个_init_ .py文件的目录。当导...

深海微澜 2094

为什么你的 Python 包需要 __init__.py?看完这篇你就明白了!

print(my_package.__version__) # 输出: 1.0.0print(my_package.__author__) # 输出: Your Nameobj = MC()mf()文件的作用贯穿了 Python 包的整个生命周期,从标识包到初始化、控制导入行为,再到提供元信息和别名定义。尽管在现代 Python 中(Python 3.3+),文件不再是强制性的,但它仍然是组织和管理代码的重要工具。以下是功能描述标识包明确标记一个目录为包,便于组织和管理模块。包初始化。

携梦问道的博客 793

python系列教程231——__init__.py

如果选择使用包导入,就必须多遵循一条约束:包导入语句的路径中的每个目录内都必须有__init__.py这个文件,否则导入包会失败。它会只加载该目录的__init__.py文件中赋值语句定义的变量名,包括该文件中程序代码明确导入的任何子模块。例如,导入后,表达式dir1.dir2会返回一个模块对象,而此对象的命名空间包含了dir2的__init__.py文件内所赋值的所有变量名。作为一个高级功能,你可以在__init__.py文件内使用__all__列表来定义目录以from* 语句形式导入时,需要导出什么。

人工智能AI技术 1122

Python模块:包package的概念与__init__.py文件

Python包(Package)概念与__init__.py详解 Python包(Package)是通过目录组织相关模块的方式,其核心是包含__init__.py文件的目录。主要功能包括: 标识包结构:__init__.py将普通目录转为Python包,即使空文件也有效 包初始化:可在__init__.py中定义包级变量、配置和初始化代码 简化导入:通过重新导出内部模块成员,提供更简洁的导入路径 控制公开接口:使用__all__列表明确指定from package import *时的导出内容 典型包结构包

输出倒逼输入,写作驱动成长。 2623

Python:__init__.py 文件详解

在 Python 的模块化体系中,__init__.py 是包(Package)结构中不可或缺的文件。__init__.py 是 Python 模块化体系的核心部件之一,它主要用于标识包的存在、初始化包的运行环境以及控制包的导出接口,支持层级化与工程化结构。掌握 __init__.py 的用法,就掌握了 Python 工程结构的“入口思想”——让代码不再是孤立的文件,而是可组合、可维护、可扩展的系统。当包被导入时,__init__.py 文件中的代码会自动执行一次,用于完成包级别的初始化工作。

qq_41176800的博客 2430

Pycharm中_init_.py文件的作用

Pycharm中_init_.py文件的作用 ...

m0_37192554的博客 1991
上一篇: 6.4 node-xlsx
下一篇: 2.1 pytest传递参数的几种方式
LetsStudy
博客等级 码龄9年 96粉丝 323原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值