Python包

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语言头文件的安装路径

—————————————————————————————————————————————————————

做有思想的新青年

本文来自企鹅号 - 全球大搜罗媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏建站达人秀

如何搭建 LNMP 网站服务环境

LNMP指的是一个基于CentOS/Debian编写的Nginx、PHP、MySQL一键安装包。可以在VPS、独立主机上轻松的安装LNMP生产环境。LNMP代表...

1.1K9
来自专栏农夫安全

精通脚本黑客txt版-第一章

第1章 本地服务器的搭建 1.1 WEB服务器简介 1.2 ASP服务器的搭建 1...

5026
来自专栏L宝宝聊IT

Nginx网站服务应用示例

1774
来自专栏IT笔记

公司内网搭建代理DNS使用内网域名代替ip地址

7666
来自专栏醒者呆

虚拟化明星——深挖轻量级容器docker

docker是一个轻量级容器,属于操作系统层面的虚拟化技术,封装了文件系统(AUFS)以及网络互联,进程隔离等特性。 传统虚拟化架构: ? docker虚拟化架...

3358
来自专栏Laoqi's Linux运维专列

git 基础架构搭建

1294
来自专栏用户2442861的专栏

Nginx简单介绍以及安装与配置

一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache 吧。后者的各种功能模块实现得比前者,例如ssl 的模块就比前者好,...

1082
来自专栏FreeBuf

让木马病毒DNS数据传输成为历史:看我如何让XShell病毒失效

基础词汇解释: DnsA记录传输: 利用dns解析过程,在请求解析的域名中包含需外传的数据,如xxxxxx.hack.com。则最终hack.com的dns服务...

2497
来自专栏Python爬虫与数据挖掘

如何在Centos官网下载所需版本的Centos——靠谱的Centos下载教程

很多小伙伴不知道对应版本的Centos怎么下载,最近小编整理了一份Centos详细的下载教程,希望小伙伴们不在为下不到对应版本的Centos而苦...

3422
来自专栏五毛程序员

wamp+thinkphp环境配置

3655

扫码关注云+社区

领取腾讯云代金券