包管理_python_2021-07-05

本文介绍了如何在Python中使用绝对路径导入模块,__init__.py文件的用途,如限制模块导入和批量导入。此外,还详细讲解了Python模块导入的优先级和__all__属性的使用。项目目录结构也做了简要概述。
摘要由CSDN通过智能技术生成

1、导包时使用绝对路径,相对路径可能会报错
在这里插入图片描述
2、__init.py__文件
init.py文件存在包的根目录下,当包或者包中的任意模块或模块中变量、函数被导入时,init.py中内容会首先自动被执行。因此,init.py文件可以实现如下应用:
A、限制本包的模块导入
在__init__.py中写入内置函数__all__,决定哪些模块可以被外部导入。
all = [“module_name1”, “module_name2”]
B、批量导入
如果包内多个模块文件都需要用到某些模块文件时,可以在包的__init__.py文件中导入需要的模块文件,然后就可以在本包不同的模块文件中直接使用导入的模块 。
3、Python在导入模块时,会执行模块里的所有内容,但多次导入只会执行一次。
4、Import导入包或模块时,Python 解释器寻找模块的优先级如下:
A、当前目录
B、环境变量PYTHONPATH
C、sys.path(list 类型)
导入 spam 模块时,解释器首先查找名为 spam 的内置模块。如果没找到,解释器再从 sys.path 变量中的目录列表里查找 spam.py 文件。sys.path 初始化时包含以下位置:
输入脚本的目录(或未指定文件时的当前目录)。
PYTHONPATH (目录列表,与 shell 变量 PATH 的语法一样)。
默认安装目录。
5、在模块内使用内置__all__属性指定本模块可以导出的变量或函数,外部导入只能使用指定的变量或函数。

#!/usr/bin/python3

__all__ = ["variable1", "variable2", "function_name1", "function_name2"]

variable1 = 0
variable2 = 0


def function_name1(args):
    pass


def function_name2(args):
    pass

6、Python项目目录结构
通常,Python项目的目录结构如下:
README:项目说明文档。
bin(scripts):存放项目的可执行脚本。
project_name:存放项目的所有源代码,程序的入口文件最好命名为main.py。
docs: 存放项目文档。
tests:测试代码目录。
extras:项目扩展部分,不属于项目必需的部分,存放与项目相关的sample、poc,通常子目录如下dev_example、production_example、test1_poc、test2_poc。
setup.py:项目安装、部署、打包的脚本。
requirements.txt:存放软件依赖的外部Python包列表。
README:项目说明文件。
LICENSE.txt:版权声明
ChangeLog.txt:版本变更日志记录
AUTHORS:作者清单
INSTALL:安装说明
MANIFEST.in:装箱清单文件
MAKEFILE:编译脚本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值