Python包
包用于将一组模块归并到一个目录中,此目录即为包,目录名即为报名
包是一个有层次的文件目录结构,它定义了一个由模块和子包组成的Python应用执行环境
基于包,Python在执行模块导入时可以指定模块的导入路径
import dir1,dir2.mod1
例如:要使用如图所示的package1,则py_pkg_mod容器必须要在模块搜索路径中
import package1.mod1
包导入语句的路径内的每个目录内都必须有_init_.py文件
_init_.py可包含python代码,但通常为空,仅用于扮演包初始化的挂钩、替目录产生模块命名空间以及使用目录导入时实现from * 行为的角色
模块的顶层执行及被导入
一个模块文件可以同时支持顶层执行(作为顶层文件)或被导入(作为模块文件)
每个模块都有一个_name_的内置属性,Python会自动设置该属性
如果文件是以顶层程序文件执行,在启动时,_name_的值为"_main_"
如果是被导入,则_name_的值为模块名
可以载模块文件检测自己的_name_属性,以之实现运行指定的代码
常用语模块的自我测试
发布Python模块或程序
Python模块、扩展和应用程序可以按以下几种形式进行打包和发布
压缩文件(使用distutils)
windows的zip文件和类Unix平台的.tar.gz文件
自动解包或自动安装可执行文件
windows中的exe文件
自包含的,不要求安装的预备运行可执行程序
windows的.exe文件,Unix上带有一个小的脚本前缀的zip压缩文件 Mac上的.app文件等
平台相关的安装程序
windows上的.msi文件、Linux常见的.rpm、src.rpm和.deb文件
Python eggs
较流行的第三方扩展
1.使用disutils发布模块
distutils模块能够帮助完成模块或程序发布
1“发布”是指一个文件集合,这些文件联合在一起可使用distutils构建、打包和发布模块
2创建好的发布可以用于安装,也可上传到pypi与他人共享
创建发布
将各代码问价组织到模块容器中
3.准备一个Readme或reamde.txt文件
而后在容器中创建setup.py文件
from distutils.core importsetup
setup(
name= 'testmod',
version= '0.0.1',
author= 'MageEdu',
description= 'A simple module.',
)
将各代码文件组织到模块容器中,而后在容器中创建setup.py文件
参数描述
name包的名称(必需)
Version版本号(必需)
author作者名称
author_email作者的电子邮件地址
maintainer维护者的名称
maintainer_email 维护者的电子邮件地址
url包的主页
description 包的简短描述
long_description 包的详细描述
download_url 包的下载位置
Classifiers 字符串分类器列表
setup.py中setup()中可用列表:
platforms:平台列表
license:许可证
py_modules:各模块名称组成的列表,此些模块可能位于包的根目录下,也可能位于某子包目录中(subpkg1.modname):
packages:各子包名称的列表
大体分为两类:元数据信息和包中的内容列表
4完成打包
在要发布的容器目录中执行“python setup.py sdist --format= ”命令 // 目标包
//可以为sdist指定格式(--format=):zip/gztar/bztar/tar
python setup.py bdist指定的格式
//要以为bdsit指定的格式(--format=) gztar/ztar/tar/zip/rpm/pkgtool/wininst/msi
bdist_dump
bdist_rpm
bdist_wininst
bdist_msi
获取帮助的方式:
python setup.py --help
python setup.py --help-commands:所有可以使用的命令,如build,install
python setup.py COMMAD --help:获取特定命令的帮助
python setup.py COMMAD --help--formats:获取特定命令支持使用的格式
pip,esay_install
安装包:
python setup.py install
步骤:build and install:
build定制:
python setup build:
--build-base=/path/to/build_dir //编译指定地址
lib,lib.platform
install定制:
第三方模块的默认安装路径通常为:site-packages
/usr/local/python27/lib/python2.7/site-packages
自定义安装路径:
普通用户
--user= //用户家目录
公共用户有写权限
--prefix= //python库的安装路径
--exec-prefix //其它语言,与平台有关的
深度定制:
--install-purelib=/path/to/python_lib //纯python代码库文件
--install-platlib=/path/to/plat_lib //其它语言,与平台有关的
--install-lib=/path/to/lib(高优先级)//上面两个选项进行混装
--install-script=/path/to/bin://可执行文件的安装路径
--install-data=//指定数据文件的安装路径
--install-headers=//指定c语言头文件的安装路径
—————————————————————————————————————————————————————
做有思想的新青年
本文来自企鹅号 - 全球大搜罗媒体
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文来自企鹅号 - 全球大搜罗媒体
如有侵权,请联系 cloudcommunity@tencent.com 删除。