当前位置: 首页 > backend >正文

python创建Directory和python package的区别

目录

1. Python 创建 Directory(目录)

2. Python Package(Python包)

主要区别对比

总结

示例:如何让一个目录变成Python包?


在Python中,创建文件夹时

有两种方式 :"创建directory"(创建目录)和"创建Python package"(创建Python包) 它们是两种不同的操作,主要区别如下:


1. Python 创建 Directory(目录)

  • 作用:单纯在文件系统中创建一个文件夹(目录),用于组织文件。

  • 特点

    • 只是一个普通的文件夹,不包含Python包的特殊结构

    • 不能直接作为Python包被导入(除非添加__init__.py)。

  • 创建方式

    • 使用os.mkdir()os.makedirs()

      python

      Copy

      Download

      import os
      os.mkdir("my_folder")  # 创建单个目录
      os.makedirs("parent/child")  # 递归创建多级目录
    • 或手动在文件系统中创建。


2. Python Package(Python包)

  • 作用:一个可被Python导入的代码组织单元,包含模块(.py文件)和子包。

  • 特点

    • 必须包含__init__.py文件(Python 3.3+的命名空间包可以省略,但通常仍建议保留)。

    • 可以包含模块(.py文件)和其他子包。

    • 能被Python的import语句识别和导入。

  • 创建方式

    • 手动创建:

      bash

      Copy

      Download

      my_package/
      ├── __init__.py   # 必须存在(可以是空文件)
      ├── module1.py    # 模块
      └── subpackage/   # 子包├── __init__.py└── module2.py
    • 使用setuptoolspoetry等工具(适合发布到PyPI)。


主要区别对比

方面Directory(目录)Python Package(包)
用途存储任意文件组织Python模块
能否被import❌ 不能✅ 能
关键文件无特殊要求必须包含__init__.py
创建方式os.mkdir()手动创建__init__.py或使用打包工具
示例data/docs/numpy/requests/

总结

  • 如果只是存储普通文件(如数据、文档),用directory(目录)即可。

  • 如果要让Python能导入代码,必须创建package(包),并包含__init__.py文件。

示例:如何让一个目录变成Python包?

bash

Copy

Download

# 原本只是一个普通目录
my_directory/
└── some_file.txt# 添加__init__.py后变成包
my_package/
├── __init__.py  # 变成Python包
└── module.py    # 可以被导入

现在可以:

python

Copy

Download

import my_package.module
http://www.xdnf.cn/news/3473.html

相关文章:

  • 【分享】数据恢复大师6.10[特殊字符]恢复手机误删的数据[特殊字符]
  • 运维工作中,Ansible常用模块有哪些?
  • 【云备份】服务端工具类实现
  • 解决 Oracle EXPDP 無法鎖定 NFS 相關錯誤: ORA-27086 flock: No locks available
  • ActiveMQ 性能优化与网络配置实战(一)
  • 2025MathorCup数学应用挑战赛B题
  • 机器视觉开发-打开摄像头
  • GAMES202-高质量实时渲染(Real-time Environment Mapping)
  • 【二】 数字图像的运算 (下)【数字图像处理】
  • Java学习手册:Spring 数据访问
  • 系统架构设计师:设计模式概述
  • Centos7.9 安装mysql5.7
  • 突破zero-RL 困境!LUFFY 如何借离线策略指引提升推理能力?
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(13): ておきます ています & てあります
  • C++11新特性_Lambda 表达式
  • 世纪华通:从财报数据看其在游戏领域的成功与未来
  • 使用Java正则表达式进行分组与匹配文本提取
  • OpenAI最新发布的GPT-4.1系列模型,性能体验如何?
  • Unity 几种主流的热更新方式
  • 【C++】类和对象(中)——默认成员函数详解(万字)
  • 存算一体架构下的新型AI加速范式:从Samsung HBM-PIM看近内存计算趋势
  • Umi-OCR项目(1)
  • 产品设计三板斧与抓住事物本质的关键意义
  • 【iview】icon样式
  • Vue 生命周期全解析:理解组件从创建到销毁的全过程
  • FPGA中级项目8———UART-RAM-TFT
  • 【Android】四大组件之BroadcastReceiver
  • Lucene并不是只有倒排索引一种数据结构,支持多种数据结构
  • react学习笔记3——基于React脚手架
  • 杜邦分析法