图形客户分界面入门,python开采_常用的python模块

目录:

1模块

1.1 python 中的模块介绍和使用

模块好比是工具包, 想要使用这个工具包中的工具(函数),就需要导入这个模块。

adodb:我们领导推荐的数据库连接组件
bsddb3:BerkeleyDB的连接组件
Cheetah-1.0:我比较喜欢这个版本的cheetah
cherrypy:一个WEB framework
ctypes:用来调用动态链接库
DBUtils:数据库连接池
django:一个WEB framework
docutils:用来写文档的
dpkt:数据包的解包和组包
MySQLdb:连接MySQL数据库的
py2exe:用来生成windows可执行文件
Pylons:我们领导推荐的web framework
pysqlite2:SQLite的连接组件
pythonwin:Python的Windows扩展
setuptools:无奈,PEAK的一套python包管理机制
sqlalchemy:数据库连接池
SQLObject:数据库连接池
twisted:巨无霸的网络编程框架
wxPython-2.6:因为需要保持与linux相同的版本才没用最新的,GUI编程框架
pypcap:抓包的
python-dnet:控制网络安全的其他设备
pyevent:Python的事件支持
pydot:画图的,graphiz
sendpkt:Python发包
simplejson:JSON的支持

  一、安装GUI工具包:EasyGui

1.1Python中的模块介绍和使用

1  import

DPKT:raw-scoket网络编程
Cx-oracle:连接oracle的好东东
Mechanize:爬虫连接网站常用
PIL:图像处理工具包

  二、导入EasyGui

有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include 引入math.h这个头文件,否则是无法正常进行调用的。

python中用关键字import来引入某个模块,比如要引用模块random,就可以在文件最开始的地方用 import random

当解释器遇到import语句, 如果模块在当前的搜索路径就会被导入。在调用random模块中的函数时, 必须这样引用:

reportlab for PDF 文件。
PyQt4 for GUI界面
feedparser: rss解析
chardet:编码检测
scons: 项目构建工具,写好了模板用起来还是很方便的
scapy: 网络包构建分析框架,可编程的wireshark,有兴趣的google “Silver Needle in the Skype”
pefile: windows pe文件解析器
winpdb: 自己的程序或者用别的库不太明白的时候就靠它了
pywmi: 省了好多折腾功夫
pylint: 培养良好的编码习惯

  三、使用EasyGui

那么在Python中,如果要引用一些其他的函数,该怎么处理呢?

import  模块名

下面是准备用的,不做评论:
pygccxml
pyparsing
pymacs
idapython
paimei
pysvn
pyLucene
wikidpad

  四、修改默认设置

在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块。

模块名.函数名

1.Karrigell                                   
1.The Standard Python Libary    
1.Python操作PDF的Libary            
1.Python cURL Libary                  
1.urlgrabber                               
1.MySQL-Python                         
1.pyScripter
2.Python for Delphi                     
1.Python Cookbook                    
1.pygame                                   
1.pymedia                                  
1.pydbf                                      
1.Pexpect                                  
1.dabo
desktop application frameworks 

  五、课时35课后习题及答案

说的通俗点:模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块

from 模块名 import  函数名1,函数名2....

从某个模块中引入一些函数

1.pySerial


1.python’s doc

1.The Visual Module of VPython(3D)

1.PyLucene

1.DBUils

1.
a good people’s blog
1.AppleScript,OSAComponents,HtmlCalendar

1.Pypcap


 

1.1.1import

from  模块名.函数名 import *

将模块中的函数py文件全部引入

python-memcached client module for memcached
Kodos,python的正则表达式调试工具,
PLY (Python Lex-Yacc)

正在用它写汇编器.
wxPython - GUI Framework
omniORBpy - CORBA Library
ZODB3 - an OODB implement
ReportLab - PDF generating solution
numpy scipy matplotlib

***********************************

在Python中用关键字import来引入某个模块,比如要引用模块math,就可以在文件最开始的地方用import math来引入。

2   as

hachoir 各种多媒体元数据解析
python-orge 演示用
数据库的:
sqlalchemy
sqlobject
MySQL-python (easy_install的时候就是这个名字)

一、安装GUI工具包:EasyGui

形如:

import time as  tt

time.sleep(2)    #错误

tt.sleep(2)   #正确

as作用是将模块名称进行改变,可以将过长的模块名进行修改,方便下面引用

routes
beaker
两个模板引擎:
genshi
mako
paster

***********************************

import module1,mudule2

3  模块制作

另外还有知道的
PyCrypto 加密的
paramiko 这个可以帮你写sftp,比twisted里面的那个好用一些
twisted 写服务器玩的
PyOpenGL
PyGame
Psyco 传说可以加速你的python程序
PIL (Python Image Library) 处理图片
PyObjC 这个是苹果上用的,写Cocoa程序

本章介绍的是图形用户界面编程,也就是平时所说的GUI(读作【gu:i】)编程,那些带有按钮、文本、输入框的窗口的编程,相信大伙都不会陌生。

当解释器遇到import语句,如果模块在当前的搜索路径就会被导入。

3.1  定义自己的模块

在python中,每个python文件都可以作为一个模块, 模块的名字就是文件的名字

比如一个文件test.py ,在test.py中定义了函数add

test.py

图片 1

Python desktop client GUI application:
wxPython
PyOpenGL
PyXML
ZSI
davlib.py
ChartDirector
一个支持多种语言的图表库,无论是效果还是效率,都比jfreechart高。

目前有很多Python的GUI工具包可供选择,Python有一个非常简单的GUI工具包:EasyGui。EasyGui跟它的名字一样的简单,一旦你的模块导入了EasyGui,GUI操作就是一个简单地调用EasyGui函数的几个参数的问题了。

在调用math模块中的函数时,必须这样引用:

3.2  调用自己定义的模块

那么在其他文件中就可以先import test,然后通过test.add(a,b)来调用了,当然也可以通过from test import add来引入

图片 2

###############  自己补充一下 ##################
游戏3D  pyglet、pythonOgre、

EasyGui官网:http://easygui.sourceforge.net

模块名.函数名

3.3  测试模块

图片 3

图片 4

图片 5

总结:

·可以根据__name__变量的结果能够判断出,是直接执行的python脚本还是被引入执行的,从而能够有选择性的执行测试代码

blender(c),k-3d(c ),vpython,panda3d

python包包收集 catswhocode.com  的 jbj
Graphical interface     wxPython          
Graphical interface     pyGtk          
Graphical interface     pyQT          
Graphical interface     Pmw          
Graphical interface     Tkinter 3000          
Graphical interface     Tix          
                  
Database     MySQLdb          
Database     PyGreSQL          
Database     Gadfly          
Database     SQLAlchemy          
Database     psycopg          
Database     kinterbasdb          
Database     cx_Oracle          
Database     pySQLite          
                  
MSN Messenger     msnlib          
MSN Messenger     pymsn          
MSN Messenger     msnp          
Network     Twisted          
Images     PIL          
Images     gdmodule          
Images     VideoCapture          
                  
Sciences and Maths     scipy          
Sciences and Maths     NumPy          
Sciences and Maths     numarray          
Sciences and Maths     matplotlib          
                  
Games     Pygame          
Games     Pyglet          
Games     PySoy          
Games     pyOpenGL          
                  
Jabber     jabberpy          
                  
Web     scrape          
Web     Beautiful Soup          
Web     pythonweb          
Web     mechanize          
                  
Localisation     geoname.py          
                  
Serial port     pySerial          
Serial port     USPP          
                  
Parallel Port     pyParallel          
                  
USB Port     pyUSB          
                  
Windows     ctypes          
Windows     pywin32          
Windows     pywinauto          
Windows     pyrtf          
Windows     wmi          
                  
PDA/GSM/Mobiles     pymo          
PDA/GSM/Mobiles     pyS60          
                  
Sound     pySoundic          
Sound     pyMedia          
Sound     FMOD          
Sound     pyMIDI          
                  
GMail     libgmail          
Google     pyGoogle          
Expect     pyExpect          
WordNet     pyWordNet          
Command line     cmd          
Compiler backend     llvm-py          
3D     VPython     

encryption               
    pyDes     DES加密解密模块     
parsing     pyparsing     类似lex/yacc但更简单的词法/语法分析器pyparsing.wikispaces.com

Tkinter———— Python默认的图形界面接口。
Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对 Tk API的接口,它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John Ousterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言,用于简化shell下复杂程序的开发,Tk工具包是和Tcl一起开发的, 目的是为了简化用户接口的设计过程。Tk工具包由许多不同的小部件,如一个按钮、一个滚动条等。通过Tk提供的这些小部件,我们就可快速地进行GUI开 发。Perl、Scheme等语言也利用Tk库进行GUI开发。Tkinter是跨平台,在各种平台下都能使用。
Python Imaging Library(PIL)————python提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换、打印和显示。还能进 行一些图形效果的处理,如图形的放大、缩小和旋转等。是Python用户进行图象处理的强有力工具。
Pmw(Python megawidgets)Python超级GUI组件集————一个在python中利用Tkinter模块构建的高级GUI组件,每个Pmw都合并了一个或多个Tkinter组件,以实现更有用和更复杂的功能。
PyXML———— 用Python解析和处理XML文档的工具包,包中的4DOM是完全相容于W3C DOM规范的。它包含以下内容:
xmlproc: 一个符合规范的XML解析器。
Expat: 一个快速的,非验证的XML解析器。 还有其他
和他同级别的还有 PyHtml PySGML
PyGame———— 用于多媒体开发和游戏软件开发的模块。
PyOpenGL———— 模块封装了“OpenGL应用程序编程接口”,通过该模块python程序员可在程序中集成2D和3D的图形。
NumPy、NumArray和SAGE———— NumArray是Python的一个扩展库,主要用于处理任意维数的固定类型数组,简单说就是一个矩阵库。它的低层代码使用C来编写,所以速度的优势很 明显。NumPy是Numarray的后继者,用来代替NumArray。SAGE是基于NumPy和其他几个工具所整合成的数学软件包,目标是取代 Magma, Maple, Mathematica和Matlab 这类工具。
MySQLdb模块———— 用于连接MySQL数据库。还有用于zope的ZMySQLDA模块,通过它就可在zope中连接mysql数据库。
PyGTK ———— 用于python GUI程序开发的GTK 库。GTK就是用来实现GIMP和Gnome的那个库。有了它,你完全可以自信的尝试自己制造Photoshop
PyQt ———— 用于python的Qt开发库。QT就是实现了KDE环境的那个库,由一系列的模块组成,有qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml,包含有300个类和超过5750个的函数和方法。PyQt还支持一个叫qtext的模块,它包含一个QScintilla库。该库是 Scintillar编辑器类的Qt接口。
PyMedia ———— 用于多媒体操作的python模块。它提供了丰富而简单的接口用于多媒体处理(wav, mp3, ogg, avi, divx, dvd, cdda etc)。可在Windows和Linux平台下使用。
Psyco ———— 一个Python代码加速度器,可使Python代码的执行速度提高到与编译语言一样的水平。
Python-ldap ———— 提供一组面向对象的API,可方便地在python中访问ldap目录服务,它基于OpenLDAP2.x。
smtplib模块 ———— 发送电子邮件。
ftplib模块 ———— 定义了FTP类和一些方法,用以进行客户端的ftp编程。我们可用python编写一个自己的ftp客户端程序,用于下载文件或镜像站点。如果想了解ftp协议的详细内容,请参考RFC959。
xmpppy模块 ———— Jabber服务器采用开发的XMPP协议,Google Talk也是采用XMPP协议的IM系统。在Python中有一个xmpppy模块支持该协议。也就是说,我们可以通过该模块与Jabber服务器通信,是不是很Cool。

使用标准方法安装:

因为可能存在这样一种情况:在多个模块中含有相同名称的函数,此时如果只是通过函数名来调用,解释器无法知道到底要调用哪个函数。所以如果像上述这样引入模块的时候,调用函数必须加上模块名

4   __all__

·如果一个文件中有__all__变量,那么也就意味着这个变量中的元素,不会被from xxx import *时导入

原文地址:

我常用的几个第三方 Python 库收藏  作者:赖勇浩(
xPython

如果你之前是 windows 程序员,用 MFC 或者 WIN32API 开发界面程序,那进入 Python 国度最好的 GUI 选择应该是 wxPython。它是 wxWidgets 的 Python Bind,与 wxWidgets 的开发完美同步,最为重要的一点是它的消息机制与 MFC 颇为相似,以前在 MFC 的经验完全可以稍作变化就套用在 wxPython 上面。在 WIN32 开发中,最讨厌的一环肯定有 WM_SIZE 消息的处,在主窗口大小变化的时候,保持控件布局在 WIN32 是一件麻烦事。这件事情 wx 解决得非常完美,它的sizer 概念可以让我轻松地在不同窗口尺寸的情况下保持完美的控件布局。另外如果你已经讨厌了 MFC 的 doc-view 模型,wx 也可以给你一个新的选择;如果你非常喜欢 doc-view 模型,放心,在 wx 中仍然可以轻松实现,以前的思想依然可以在这里发挥余热。
wxPython 有两个封装,一个 PythonCard,另一个是 dabo。前者是 wxPython 的有限封装,不支持 wxPython 的全部特性,它的目标是让 wxPython 更加 Pythonic。后者比 PythonCard 要庞大不少,确切来说,它应该是一个三层架构的 C/S 模式的开发框架。如果你想开发基于数据库的应用(如 MIS、ERP 等)用 dabo 是一个不错的选择;另外,如果你之前习惯了 VB、VFP、Delphi 等 RAD 开发环境,dabo 并不比这些昂贵的工具差多少哦!

py2exe

按照邪恶的 windows 思维,编写的应用如果不编译出一个 .exe 文件恐怕是算不得“软件”的,py2exe 作用正是把你的 .py 脚本变成 .exe 文件,通常它会把脚本打包到一个 .zip 文件中去,但也你可以通过修改 setup.py 脚本把所有的脚本、依赖的 dll 等全部打包到一个 exe 中去,看起来跟 VC、VB 编译出来的程序没有什么两样!
如果你的客户需要在 windows 下使用你的应用程序,py2exe 是你不可或缺的工具。我就是用它打包由 wxPython 写的小工具给公司里的游戏策划用的。

psyco

脚本的执行效率多少有点差强人意,虽然优化起来并不是难事,但如果有简单的方法,近乎不用修改源代码,那当然值得去关注一下。psyco 的神奇在于它只需要在代码的入口处调用短短两行代码,性能就能提升 40% 或更多,真可谓是立竿见影!
如果你的客户觉得你的程序有点慢,敬请不要急着去优化代码,psyco 或许能让他立即改变看法。psyco 堪称 Python 的 jit,有许多潜力可以挖掘,如果剩下来给你优化性能的时间已经不多,请马上去阅读它的手册,有许多招儿轻松优化性能。

PIL

PIL 是 Python 的图像处理库,我的看法是强到没得说,简单到没得说。它可以打开数十种图像格式,常见的 jpg/png/bmp 等当然不在话下;此外还提供许多图像处理函数,如图像增强、滤波算法等,详情可以参考我以前的一篇文章《用Python 做图像处理》(

MySQLdb

这是 Python 对开源数据库 Mysql 的支持,官网在 Mysql 3.23-5.1 全系列版本,Python 版本的要求是 2.3-2.5。MySQLdb 是 Python DB API-2.0 的实现,现在已经很成熟了。最新的版本是 1.2.2 。
如果从事服务器开发,那少不得跟数据库连接池打交道,这时你可以使用 DBUtils 或 jonpy 两个开源程序库。其中 DBUtils 是一套数据库连接池库,而 jonpy 则包括了 CGI 以及数据库连接池等多个功能,请在阅读手册后选择合适的自己库。

pyprocessing
Python 解释器里的 GIL(全局解释器锁)使得 Python 在多核时代有点尴尬——这个支持原生线程的脚本语言竟然不能通过多线程利用多个 CPU 内核同时并发计算。pyprocessing 没有尝试去除 GIL,而是剑走偏锋,尝试从多进程的方式来帮助 Python 走出困境。结果就是使用 pyprocessing 创建进程和进程间通信不仅像使用内置的 threading 模块那么简单,甚至还更加简单。pyprocessing 不仅可以通过本机 socket 和管道进行通信,而且封装得极为完美,它的 Queue 实现用起来跟内置的 Queue 没啥两样,但它是一个进程间共享的队列哦!
pyprocessing 在 py2.6 和 py3.0 中已经作为内置模块了,也算是开发社区对 pyprocessing 项目的肯定吧。如果你用 Python 开发服务器应用,特别是网络游戏这样的应用,pyprocessing 怎么可以不去关注一下!

=============================================================================

Python模块安装

  1. 单文件模块
    直接把文件拷贝到$python_dir/lib

  2. 多文件模块,带setup.py
    python setup.py install

  3. egg文件
    1) 下载ez_setup.py,运行python ez_setup
    2) easy_install *.egg
    虽然Python的模块可以拷贝安装,但是一般情况下推荐制作一个安装包,即写一个setup.py文件来安装。
    setup.py文件的使用:

% python setup.py build #编译
% python setup.py install    #安装
% python setup.py sdist     #制作分发包
% python setup.py bdist_wininst #制作windows下的分发包
% python setup.py bdist_rpm

setup.py文件的编写
setup.py中主要执行一个 setup函数,该函数中大部分是描述性东西,最主要的是packages参数,列出所有的package,可以用自带的find_packages来动态获取package。所以setup.py文件的编写实际是很简单的。
简单的例子:
setup.py文件

 from setuptools import setup, find_packages
 setup(
        name = " mytest " ,
        version = " 0.10 " ,
        description = " My test module " ,
        author = " Robin Hood " ,
        url = " " ,
        license = " LGPL " ,
        packages = find_packages(),
        scripts = [ " scripts/test.py " ],
        )

mytest.py

import sys
 def get():
      return sys.path

scripts/test.py

import os
 print os.environ.keys()  

setup中的scripts表示将该文件放到 Python的Scripts目录下,可以直接用。
OK,简单的安装成功,可以运行所列举的命令生成安装包,或者安装该python包。

第一步:解压easygui-0.96.zip

图片 6

5   python 中的包

图片 7

图片 8

图片 9

图片 10

图片 11

总结:

·包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py文件,那么这个文件夹就称之为包

·有效避免模块名称冲突问题,让应用组织结构更加清晰

本机测试成功(win32-python25)!

setuptools它可以自动的安装模块,只需要你提供给它一个模块名字就可以,并且自动帮你解决模块的依赖问题。一般情况下用setuptools给安装的模块会自动放到一个后缀是.egg的目录里。

首先,安装setuptools这个东西,先去下载一个脚本:  下载完后直接执行它就会帮你把setuptools给装好。
之后,安装模块的使用方法就是使用一个叫easy_install的命令,在Windows里,这个命令在python安装目录下的scripts里面,所以需要把scripts加到环境变量的PATH里,这样用起来就更方便,linux下不需要注意这个问题。

第二步:使用命令窗口切换到easygui-docs-0.96的目录下。

有时候我们只需要用到模块中的某个函数,只需要引入该函数即可,此时可以用下面方法实现:

6   �__init__.py

__init__.py控制着包的导入行为

安装软件只需要执行:easy_install 模块名

pyinstaller 来建立linux下的python独立执行文件

以下内容假定已安装好Python 2.4/2.5
一、下载并编译pyinstaller(只需做一次,以后可直接做第二步)
1.下载pyinstaller,现在的版本是1.3
(1)wget

2.解包进入源码目录
(1)tar zxv pyinstaller_1.3.tar.gz
(2)cd pyinstaller-1.3/source/linux

3.编译源代码
(1)python Make.py  生成python的 .pyc文件
如无错误,则出现如下提示(只有一行):
Now run "make" to build the targets: ../../support/loader/run ../../support/loader/run_d
(2)make 连接生成linux的 .o 文件

4.生成编译配置文件
(1)python Configure.py  生成config.dat配置文件

二、编译独立运行的python可执行文件
1.生成spec文件
python pyinstaller-1.3/Makespec.py --onefile --upx linuxlaptop.py

参数说明:
--onefile 生成单文件
--upx          生成压缩的文件(可减小执行文件体积,需先安装upx软件包)
2.生成最终的可执行文件
python pyinstaller-1.3/Build.py linuxlaptop.spec

第三步:在windows下执行  C:Python34python.exe setup.py install

   from  模块名  import  函数名1,函数名2....

__init__.py为空

仅仅是把这个包导入,不会导入包中的模块

执行完成后将在当前目录生成可执行的linuxlaptop文件,如有问题欢迎与我交流:linuxlaptop.cn。

用cx_Freeze把python打包成exe可执行文件

以前从来没有试过把Python打包,昨天试了试,发现打包也是一件挺容易的事情.Python打包有很多种选择.cx_Freeze是一种, py2exe也可以,还有一个pyinstaller.我用的是cx_Freeze,而py2exe因为sf实在太慢连不上.所以没办法,只好先用可以下载的.cx_Freeze的资料比较少,不过不是太痛苦,因为好像cx会比py2exe简便易用,而且好像是跨平台的,不错不错.
    cx_Freeze的用法就一个命令FreezePython.exe,打包也很快捷:
    FreezePython.exe  --install-dir="/your/path/to/install" app.py
    然后就会把app.py以及其依赖的所有模块,包和库全部归整后放到--install-dir 所指的路径下.
    碰到两个问题,一个是文件编码,一开始总是说找不到gb2312的编码,后面google了一下,发现要这么做:     
在app.py中添加from encodings import gbk 一句,然后就可以了.    
如果用到了gettext,要注意po文件中的
    "Content-Type: text/plain; charset=gbk/n"
    "Content-Transfer-Encoding: cp936/n"     
这两句要这样写,字符集要用gbk,不要用gb2312.
    另一个问题是控制台隐藏:   
默认cx_Freeze打包后都是控制台程序,就算你打包一个wxPython程序,也会有一个黑黑的控制台在后面做背景,要去掉控制台就要这样:
    FreezePython.exe --install-dir="/your/install/path" --base-binary=Win32GUI.exe app.py
    加了--bash-binary 后就可以只运行前台的界面了,不过如果程序出错,会弹出一个错误对话框,说找不到traceback模块.
    这就要在app.py文件中加一句:
    import traceback

    把错误反馈以对话框形式弹出.

原文:

    在Linux或Mac下执行  sudo /usr/bin/python34 setup.py install

不仅可以引入函数,还可以引入一些全局变量、类等

__all__

在__init__.py文件中,定义一个__all__变量,它控制着from包名import *时导入的模块

   (命令的前面部分是python程序在电脑上的安装路径,自行进行修改)

注意:

模块发布

windows下的安装界面如下图所示:

o通过这种方式引入的时候,调用函数时只能给出函数名,不能给出模块名,但是当两个模块中含有相同名称函数的时候,后面一次引入会覆盖前一次引入。也就是说假如模块A中有函数function( ),在模块B中也有函数function( ),如果引入A中的function在先、B中的function在后,那么当调用function函数的时候,是去执行模块B中的function函数。

1.mymodule目录结构体下:

 图片 12

如果想一次性引入math中所有的东西,还可以通过from math import *来实现

2.编辑setup.py文件

 

1.1.1from…import

fromdistutils.coreimportsetup

********************

Python的from语句让你从模块中导入一个指定的部分到当前命名空间中

setup(name="yongGe", version="1.0", description="yongGe's module", author="yongGe", py_modules=['suba.aa','suba.bb','subb.cc','subb.dd'])

二、导入EasyGui

语法如下:

3.构建模块

********************

       from   modname   import   name1[, name2[, ... nameN]]

python setup.py build

为了使用这个Easygui这个模块,你应该先导入它。最简单的导入语句是 import easygui。

例如,要导入模块fib的fibonacci函数,使用如下语句:

4.生成发布压缩包

如果用这种导入方式的话,那么在使用easygui的函数时候,必须在函数的前面加上前缀easygui:

图片 13

python setup.py sdist

>>> import easygui
>>> easygui.msgbox("DC love ZWW")

注意

打包后,生成最终发布压缩包yongGe-1.0.tar.gz

回车后即弹出消息框,如图所示:

·不会把整个fib模块导入到当前的命名空间中,它只会将fib里的fibonacci单个引入

模块的安装、使用

 图片 14

1.1.1from … import *

安装的方式

1.找到模块的压缩包

2.解压

3.进入文件夹

4.执行命令python setup.py install

注意:

·如果在install的时候,执行目录安装,可以使用python setup.py install --prefix=安装路径

另一种选择是导入整个Easygui包:from easygui import *,这样使得我们更容易调用Easygui的函数,可以直接这样编写代码:

把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:

模块的引入

在程序中,使用from import即可完成对安装的模块使用

from模块名import模块名或者*

>>> from easygui import *
>>> msgbox("DC love ZWW")

图片 15

第三种方案是使用类似下边的import语句(建议使用):import easygui as g,这样可以让你保持Easygui的命名空间,同时减少输入字符的数量:

注意

>>> import easygui as g
>>> g.msgbox("DC love ZWW")

这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。

 

1.1.1as

********************

图片 16

三、使用EasyGui

1.1.1定位模块

********************

当你导入一个模块,Python解析器对模块位置的搜索顺序是:

 举一个简单的例子:

1.当前目录

import easygui as g
import sys

while 1:
      g.msgbox ("嗨,欢迎进入第一个界面小游戏")
      msg = "请问你希望学到什么知识呢?"
      title = "游戏小互动"
      choices = ["谈恋爱","编程","demo","琴棋书画"]
      choices = g.choicebox(msg,title,choices)

      g.msgbox("您的选择是:" str(choices),"结果")
      msg = "你希望重新开始小游戏吗?"
      title = "请选择"
      if g.ccbox(msg,title):
            pass
      else:
            sys.exit(0)

2.如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。

 图片 17

3.如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/

图片 18

模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

图片 19

1.1模块制作

图片 20

1.1.1定义自己的模块

 

在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。

*********************

比如有这样一个文件test.py,在test.py中定义了函数add

四、修改默认设置

test.py

*********************

图片 21

 默认情况下显示的对话框会很大,而且字体也相对难看。这里可以手动调整EsayGui的参数修改。

1.1.1调用自己定义的模块

修改位置为 C:Python34Libsite-packageseasygui.py。

那么在其他文件中就可以先import test,然后通过test.add(a,b)来调用了,当然也可以通过from test import add来引入

更改对话框尺寸:找到def _ _choicebox,下边的 root_width    = int((screen_width * 0.8))和 root_height   = int((screen_height * 0.5))分别改为root_width    = int((screen_width * 0.4))和 root_height   = int((screen_height * 0.25))

main.py

 

图片 22

EasyGui提供了非常多的组件供我们实现一个完整的界面程序,刚才演示了 msgbox、choicebox和ccbox的用法。关于更多的组建使用,大家可以参考小甲鱼翻译的《EasyGui学习文档》:

1.1.1测试模块

*******************************

在实际开中,当一个开发人员编写完一个模块后,为了让模块能够在项目中达到想要的效果,这个开发人员会自行在py文件中添加一些测试信息

五、课时35课后习题及答案

python在执行一个文件时有个变量__name__

*******************************

总结:

图片 23图片 24图片 25

·可以根据__name__变量的结果能够判断出,是直接执行的python脚本还是被引入执行的,从而能够有选择性的执行测试代码

图片 26图片 27图片 28图片 29图片 30

·__name__如果写在被直接运行的主文件中,是”__main__”

图片 31

·如果写在被导入的文件中,运行主文件的时候,导入文件中的__name__是”模块的名字”

图片 32图片 33图片 34图片 35图片 36图片 37图片 38图片 39

1.1模块中的__all__

 

·如果一个文件中有__all__变量,那么也就意味着这个变量中的元素,不会被from xxx import *时导入

 

图片 40

 

图片 41

 

1.1python中的包

图片 42

1.1.1引入包

有2个模块功能有些联系

图片 43

所以将其放到同一个文件夹下

图片 44

使用import文件.模块 的方式导入

图片 45

使用from文件夹import模块 的方式导入

图片 46

在msg文件夹下创建__init__.py文件

图片 47

在__init__.py文件中写入

图片 48

重新使用from文件夹import模块 的方式导入

图片 49

总结:

·包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py文件,那么这个文件夹就称之为包

有效避免模块名称冲突问题,让应用组织结构更加清晰

1.1.1__init__.py文件有什么用

__init__.py控制着包的导入行为

1.1.1.1__init__.py为空

仅仅是把这个包导入,不会导入包中的模块

1.1.1.1__all__

在__init__.py文件中,定义一个__all__变量,它控制着from包名import *时导入的模块

1.1模块发布

1.mymodule目录结构体如下:

图片 50

2.编辑setup.py文件

py_modules需指明所需包含的py文件

图片 51

3.构建模块

python setup.py build

构建后目录结构

图片 52

4.生成发布压缩包

python setup.py sdist

打包后,生成最终发布压缩包yongGe-1.0.tar.gz ,目录结构

图片 53

1.1模块安装、使用

1.1.1.1安装的方式

1.找到模块的压缩包

2.解压

3.进入文件夹

4.执行命令python setup.py install

注意:

·如果在install的时候,执行目录安装,可以使用python setup.py install --prefix=安装路径

1.1.1.1模块的引入

在程序中,使用from import即可完成对安装的模块使用

from模块名import模块名或者*

本文由星彩网app下载发布于计算机编程,转载请注明出处:图形客户分界面入门,python开采_常用的python模块

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。