Python学习手册之__main__ 模块,常用第三方模块和打包发布
在上一篇文章中,我们介绍了 Python 的 元组拆包、三元运算符和对 Python 的 else 语句进行了深入讲解,现在我们介绍 Python 的 __main__ 模块、常用第三方模块和打包发布。
查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/10057482.html
__main__ 模块
大多数 Python 代码要么是导入的模块,要么是执行某些任务的脚本。但是,有时需要使一个文件既可以作为模块导入,也可以作为脚本运行。
def sayHello():
str = "hello"
print(str) if __name__ == "__main__":
print('This is main of module "hello.py"')
运行结果:
>>>
This is main of module "hello.py"
>>>
当 Python 解释器读取源文件时,它会执行它在文件中找到的所有代码。在执行代码之前,它定义了一些特殊的变量。
例如,如果 Python 解释器将该模块 (源文件) 作为主程序运行,它将一个特殊的 __name__ 变量设置为字符串值 "__main__"。如果该文件是从另一个模块导入的,__name__ 将设置为该模块的名称。
如果我们把上一个例子的代码使用一个文件名为 cmd.py 保存,使用名字 cmd 可以导入到另一个脚本作为一个模块。
cmd.py
def sayHello():
str = "hello"
print(str) if __name__ == "__main__":
print('This is main of module "hello.py"')
cmd_hello.py
import cmd cmd.sayHello()
运行结果:
>>>
hello
>>>
我们创建了一个模块 cmd 并通过另外的脚本来调用。
常用第三方模块
除了内建的模块外,Python 还有大量的第三方模块。
Django 是 Python 最常用的 Web 框架,它支持 instagram 和 Disqus等网站运行。它有许多非常有用的特性,并且它缺少的特性都可由它的扩展包来满足。CherryPy 和 Flask 同样也是非常流行的 Web 框架。
如果要从网上爬取数据 BeautifulSoup 模块将帮你省很多力气,这比用正则表达式构建自己的数据提取规则要好得多。
虽然 Python 提供了以编程方式访问网站 (如 urllib) 的模块,但它们的使用非常麻烦。使用第三方库 request 会使 HTTP 请求变得更加容易。
有许多第三方模块可以帮助 Python 实现科学和数学计算。matplotlib 模块允许你使用 Python 来创建 2D 图形。模块 Numpy 允许使用比原生 Python 解决方案快得多的多维数组,同时它还包含执行数学操作的函数,例如对数组的矩阵转换。模块 SciPy 包含对 NumPy 功能的很多扩展。
Python 同样可以用来做游戏开发,它通常被用来作为使用其它语言编写有些的脚本语言,但也可以用来自己制作游戏。
Panda 3D 模块帮助你建立 3D 游戏,pygame 帮助你建立 2D 游戏。
打包发布
在 Python 中,打包一词是指将您编写的模块以标准格式编写,以使其他程序员能够轻松地安装和使用它们。这涉及到模块、setuptools 和 distutils 的使用。
打包的第一步是正确组织文件。将要放入库中的所有文件放在同一个父目录中。该目录还应该包含一个名为 __init__.py 的文件,该文件可以是空的,但必须存在与目录中。这个目录放在另一个包含自述文件和许可文件的目录下,同时还有一个非常重要的文件 setup.py。目录结构如下。
Foo/
|-- bin/
| |-- foo
|
|-- foo/
| |-- tests/
| | |-- __init__.py
| | |-- test_main.py
| |
| |-- __init__.py
| |-- main.py
|
|-- docs/
| |-- conf.py
| |-- abc.rst
|
|-- setup.py
|-- requirements.txt
|-- README
简要解释一下:
1、 bin/: 存放项目的一些可执行文件,当然你可以起名script/之类的也行。
2、 foo/: 存放项目的所有源代码。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶 层目录。(2) 其子目录tests/存放单元测试代码; (3) 程序的入口最好命名为 main.py。
3、 docs/: 存放一些文档。
4、 setup.py: 安装、部署、打包的脚本。
5、 requirements.txt: 存放软件依赖的外部Python包列表。
6、 README: 项目说明文件。
您可以根据需要在目录中放置很多的 Python 脚本文件。
下一步是在 setup.py 文件里写打包指令,里面包含了软件包所需的信息,以便将其上传到 PyPI 并通过 pip 安装。
from distutils.core import setup setup(
name='cmd',
version='1.0',
description='sdk for di input , output and param',
author='ZS',
author_email='ZS@qq.com',
url='',
license='No License',
platforms='python 3.7',
py_modules=['factory'],
package_dir={'': 'pack'},
packages=['lib', 'common.http']
)
创建 setup.py 文件后,可将其上传到 PyPI 上,或使用命令行构建二进制的发行版 (可执行安装程序)。
要构建一个发行版,请使用命令行进入到包含 setup.py 的目录,并运行命令 python setup.py sdist 创建源码分发包,Windows 下可运行 python setup.py bdist_wininst 来构建二进制的发行版。
使用 python setup.py register 注册账号,使用 python setup.py sdist upload 上传大家可下载的发行版。
前面介绍了是其他 Python 程序员使用的模块打包方法。如果你的用户不是程序员,那么他的计算机大多数没有安装 Python。因此,需要将脚本打包为相关平台 (如 Windows) 的可执行文件。
在 Windows 平台上,有许多工具可用于将 Python 脚本转换为可执行文件。py2exe 可以用来将 Python 脚本和它所需的库打包到单个可执行文件中,你也可以用 PyInstaller 或 cx_Freeze。
对于 Linux 或 Max 用户来说这是不必要的,因为大多数用户都安装了 Python。
“一些人总是找无数理由放弃自己想做的事情,实际上他们只需要一个理由放手去做。” -- 玛莎·葛兰姆
Python学习手册之__main__ 模块,常用第三方模块和打包发布的更多相关文章
- 《Python学习手册》读书笔记
之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我 ...
- 《Python学习手册》读书笔记【转载】
转载:http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html 之前为了编写一个svm分词的程序而简单学了下Python,觉 ...
- Python学习笔记(十四):模块高级
以Mark Lutz著的<Python学习手册>为教程,每天花1个小时左右时间学习,争取两周完成. --- 写在前面的话 2013-7-23 21:30 学习笔记 1,包导入是把计算机上的 ...
- python基础-7模块,第三方模块安装方法,使用方法。sys.path os sys time datetime hashlib pickle json requests xml
模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...
- Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘
Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:g7v1 作者简介 作为全球Python培训界的领军人物,<Python学习手册:第4版>作者M ...
- Python学习手册(第4版)PDF高清完整版免费下载|百度云盘
Python学习手册(第4版)PDF高清完整版免费下载|百度云盘 提取码:z6il 内容简介 Google和YouTube由于Python的高可适应性.易于维护以及适合于快速开发而采用它.如果你想要编 ...
- 读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」
0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之 ...
- 《Python学习手册 第五版》 -第10章 Python语句简介
前面在开始讲解数据类型的时候,有说过Python的知识结构,在此重温一下 Python知识结构: 程序由模块组成 模块包含语句 语句包含表达式 表达式创建并处理对象 关于知识结构,前面已经说过我自己的 ...
- global语句(python学习手册422页)
# -*- coding: cp936 -*- #python 27 #xiaodeng #global语句(python学习手册422页) #实际上就是一个名为__builtin__的模块,但是必须 ...
随机推荐
- T-SQL语法学习一(持续更新)
T-SQL语法学习(一) 第一节 不常用语句 不常用语句-指的是一些不常用的查询语句,不针对业务数据查询 SET STATISTICS IO ON(用于查询逻辑读取次数,物理读取次数) 图片 sele ...
- Python零基础学习系列之四--Python程序设计思想
前面我们把Python环境安装成功,同时也选择了自己合适的IDE工具来开启自己的编程之旅. 那么今天来说说怎么编程,程序设计需要什么步骤,我们应该怎么做才能编写自己的程序. 1-1.程序设计方法: I ...
- 【Leetcode】【Medium】Sqrt(x)
Implement int sqrt(int x). Compute and return the square root of x. 解题思路1,o(log(n)): 像这种从初始遍历查找匹配的任务 ...
- 安装或删除Skype for business server组件的时候,报错"错误: 找不到 SQL 服务"
安装或删除Skype for business server组件的时候,到了安装所有并置数据库的时候,报错“错误: 找不到 SQL 服务.确保计算机 skype.centos.com 中安装了 SQL ...
- ADOBE READER把PDF转换成WORD教程
目前国外很多软件的支持信息都使用PDF方式进行发布,如果没有Adobe Reader,无法查看其内容,如果没有相关的编辑软件又无法编辑PDF文件.转换为DOC格式则可以实现编辑功能.尽管有些软件也可 ...
- ieHTTPHeaders使用方法
在http://www.blunck.se/iehttpheaders.html下载软件打开IE浏览器查看-->浏览器栏-->ieHTTPHeaders可以查看httpheader tra ...
- java virtualVM远程配置方法
在/etc/hosts中设置主机名和ip的对应关系 ip为用java virtualVM链接服务器的ip 如: 10.175.0.191 host-ai #rmiregistry不知道干 ...
- Oracle练习详解
--1.查询emp表,显示薪水大于2000,且工作类别是MANAGER的雇员信息 select * from emp where sal > 2000and job = 'MANAGER'; - ...
- 常规渗透:没遇到过的anquan狗
0x01 信息收集 服务器信息: windows 2003 + IIS 6.0 + aspx . Php + 安全狗 站点cms信息:一套aspx新闻发布系统 和 Discuz X3 端口信息 : 服 ...
- C++11学习之share_ptr和weak_ptr
一.shared_ptr学习 1.shared_ptr和weak_ptr 基础概念 shared_ptr与weak_ptr智能指针均是C++ RAII的一种应用,可用于动态资源管理 shared_pt ...