python 模块与包

模块

模块的分类

  1. 标准模块(库),无需安装直接导入
  2. 第三方模块(库),需要pip安装后导入
  3. 自定义模块(库),自己编写的.py文件

导入方式

1. 直接导入 import math
2. 从模块中导入函数/变量 from string import ascii_uppercase 
3. 模糊导入 from string import *

python执行

  1. 语法词法分析
  2. 编译生成字节码 .pyc
  3. 执行pyc
当模块导入运行时,会在同级目录下生成__pycache————目录,
将生成的字节码保存在这个目录下,下一次使用时直接运行字节码文件
直接运行的程序 不保存字节码
Python3  生成一个__pycache__文件夹,保留字节码
python2  只会在模块同级目录下生成.pyc文件

模块打包与发布

1、创建一个目录modpack,在此目录下创建空文件__init__.py
2、在modpack下创建模块
[root@zabbix-agent-nginx modpack]# touch __init__.py
[root@zabbix-agent-nginx modpack]# ls
__init__.py
[root@zabbix-agent-nginx modpack]# vim mod.py
[root@zabbix-agent-nginx modpack]# cat mod.py
def func():
    print("i am modpack function")
3、回到modpack同级目录,创建setup.py文件
[root@zabbix-agent-nginx python-hyrz]# vim setup.py
[root@zabbix-agent-nginx python-hyrz]# cat setup.py
from setuptools import setup, find_packages

setup(
   #包名
   name = "modtest",
   #官网
   url = "http://www.abc.com",
   #版本
   version = "0.0.1",
   #指定要打包的模块和包
   packages = find_packages(),
   #作者
   author = "sc",
   #邮箱
   author_email = "123456@qq.com",
   #依赖
   install_requires = ['xlrd>=1.1.0'],
   #描述信息
   description = "this is test pack"
)
4、运行python3 setup.py  check进行语法检查
[root@zabbix-agent-nginx python-hyrz]# python3 setup.py check
Traceback (most recent call last):
  File "setup.py", line 11, in <module>
    packages = find_packges(),
NameError: name 'find_packges' is not defined
[root@zabbix-agent-nginx python-hyrz]# vim setup.py
[root@zabbix-agent-nginx python-hyrz]# python3 setup.py check
running check

5、运行python3 setup.py sdist 生成tar.gz压缩包, 会在同目录下生成一个dist目录
 打包好的安装包文件就放在dist目录下
6、安装
  进入dist目录
  pip3 install modtest-0.0.1.tar.gz
7、测试
[root@zabbix-agent-nginx ~]# python3
Python 3.6.8 (default, Nov 16 2020, 16:55:22)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from modpack import mod
>>> mod.func()
i am modpack function
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值