通过作为python模块共享代码,就可以向整个python社区开发你的代码。在这一章中将学习如何创建、安装和发布你自己的可共享模块,然后把模块加载到Web上的python软件共享网站。

(一)函数转换为模块

模块就是一个包含python代码的文本文件,对模块的主要需求就是要求文件名以.py结尾,这是python扩展名,要把函数转换为一个模块,需要把代码保存到一个适当命名的文件中。

Python标准库里已经预加载了大量模块,而且他们已经在你的计算机上了;如果标准库里没有你要的模块,可以去PyPI上看一下:https://pypi.python.org/pypi。Python包索引(pythonpackage index,PyPI)为Internet上的第三方python模块提供了一个集中的存储库。

(二)注释代码

在python中,可以使用一个三重引号来建立多行注释

在保存模块之后,只需要创建列表,然后对列表调用函数即可:

>>> movies=['The HolyGrail',1975,'Terry Jones & Terry Gilliam',91,

['Graham Chapman',['Michael Palin','JohnCleese',

'Terry Gilliam','Eric Idle','Terry Jones']]]

>>> print_lol(movies)

The Holy Grail

1975

Terry Jones & Terry Gilliam

91

Graham Chapman

Michael Palin

John Cleese

Terry Gilliam

Eric Idle

Terry Jones

>>>

注意:

1、  在idle提示窗口输入importsys; sys.path(都放在一行上),输出一个位置列表,python解释器就在这个位置上搜索模块;

2、  模块放到哪里对现在来说没有任何影响向,稍后将把这个模块安装到你的python本地副本,这样解释器就可以找到它,而无需记住它具体放在哪里;

3、  三重引号(可单可双)引起的字符串没有赋给一个变量,就会被作为一个注释;

4、  如果一行中任意位置加了一个“#”号,从这一点指导当前行末尾的所有内容都是注释。

(三)准备发布

1、  为模块创建一个文件夹,创建文件夹后,将nester.py模块文件复制到这个文件夹中;

2、  在新文件夹中创建一个名为“setup.py”的文件,这个文件包含有关发布的原数据,编辑文件,增加下面代码

from distutils.core import setup

setup(

name       =’nester’,

version      =’1.0.0’,

py_module s  =[‘nester’],

author      =’sara’,

author_email =’cyjia1022@126.com’,

url         =’ http://blog.csdn.net/sarafd’

description  =’A simple printer ofnested lists’,

)

3、  构建一个发布文件,发布工具包含有构建一个发布所需的所有功能,在nester文件夹中打开一个终端窗口,输入一行命令:python setup.py sdist

注:

在文件夹中打开终端窗口,可以按shift,然后点击右键,点击“在此处打开命令窗口”

如果输入命令后显示“python3不是内部或外部命令”,解决方法:

http://jingyan.baidu.com/article/ceb9fb10db2fc68cac2ba04e.html

4、  将发布安装到你的python本地副本中,仍然在终端窗口,键入以下命令: python setup.py install

此时发布已准备就绪。

(四)发布预览

利用python的发布工具,你的模块已经转换为一个发布,并且安装在你的python本地副本上。

开始时只有一个函数,这个函数输入一个名为nester.py的文件中,这就创建了一个模块,然后创建一个名为nester的文件存放这个模块,通过在这个文件夹中增加一个名为setup.py的文件,从而能够构建和安装你的发布,这会生成一组额外的文件,并在nester文件夹中出现两个新的文件夹,这些文件和文件夹都是由发布工具为你创建的。

安装前:nester文件夹中有nester.py(代码),setup.py(元数据);

安装后:nester文件夹中有manifest(发布中的文件列表),bulld文件夹(里面有lib文件夹,lib文件夹下有nester.py文件(含代码)),dist文件夹(含nester-1.0.0.tar.gz(发布包)),nester.py(代码),nester.pyc(编译版本的代码),setup.py(元数据)。

(五)导入模块并使用

要使用一个模块,只需要把它导入到你的程序中,或者导入到IDLE shell:

Importnester

例:导入新建的模块地,并定义一个小列表,名为“cast”,然后使用模块提供的函数在屏幕上显示这个列表的内容,列表数据为Palin, Cleese, Idle, Jones, Gilliam, Chapman.

import nester

cast=['Palin','Cleese','Idle','Jones','Gilliam','Chapman'];

print_lol(cast)

这时,IDLE会报错:

Traceback (most recent call last):

File "<pyshell#2>", line 1, in <module>

print_lol(cast)

NameError: name 'print_lol' is not defined

原因是print_lol函数应该是在nester这个模块中,所以需要进行限定,格式:模块名.函数名:

nester.print_lol(cast)

这时输出:

Palin

Cleese

Idle

Jones

Gilliam

Chapman

其实,还有一种方式:from nester importprint_lol ; 会把指定的函数(这里是print_lol)增加到当前命名空间中,这样就不必在使用命名空间限定了,不过需要注意,如果当前的命名空间中已经定义了一个名为print_lol的函数,这个特定import语句会用导入的函数覆盖之前的函数,所以不推荐这样做。

可是,问题来了,输出的东西并不属于一个级别,如何区分它们的级别呢?请看下一节~

这里省略掉在PyPI社区注册和分享的过程,之后会补上哒~

注意:

1、  在IDLE编辑窗口中按F5,代码会由Python执行,这样方便测试,不过要想在IDLE之外使用模块的功能,仍需要先导入模块;

2、  发布工具创建了一个名为nester.pyc的文件,因为解释其第一次执行模块代码时,它会读入代码,并转换为一种中间字节码格式,也是最终执行的,这样可以让程序运行的更快,但是不能只向用户提供pyc文件,因为pyc文件主要是解释其完成一个运行时的优化。

(六)python共享代码步骤相关推荐

  1. 【Python】《大话设计模式》Python版代码实现

    <大话设计模式>Python版代码实现 上一周把<大话设计模式>看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多.偶尔会用到一些脚本语言写脚本的人来说,很是开阔眼 ...

  2. 《大话设计模式》Python版代码实现

    <大话设计模式>Python版代码实现 上一周把<大话设计模式>看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多.偶尔会用到一些脚本语言写脚本的人来说,很是开阔眼 ...

  3. 学习Python全套代码【超详细】Python入门、核心语法、数据结构、Python进阶【致那个想学好Python的你】

    大家早上好,本人姓吴,如果觉得文章写得还行的话也可以叫我吴老师.欢迎大家跟我一起走进数据分析的世界,一起学习! 感兴趣的朋友可以关注我的数据分析专栏,里面有许多优质的文章跟大家分享哦. 文末附上详细的 ...

  4. 使用python实现代码动画视频

    使用python实现代码动画视频 前言 最近在CSDN上面看到一个将视频转换为由代码组成的视频,所以想自己写一个.参考的原文博客为:https://blog.csdn.net/hhladminhhl/ ...

  5. Python趣味代码整合之提升学生编程兴趣

    这篇文章主要是整合一些趣味代码,一方面自己对这些内容比较感兴趣,另一方面希望这些代码能提升学生的编程兴趣,其主旨是代码能在我的电脑上运行并有些趣味.         参考资料:             ...

  6. 【机器视觉案例】(5) AI视觉,手势调节物体尺寸,附python完整代码

    各位同学好,今天和大家分享一下如何使用opencv+mediapipe完成远程手势调节图片尺寸的案例.先放张图看效果.当拇指和食指竖起时,根据食指间的连线的长度自由缩放图片尺寸.图片的中点始终位于指尖 ...

  7. android 共享代码,Android团队成员间的代码共享!(Git+Github版)

    原创,转载请说明出处. 一. 这篇文章要解决什么问题,能学习到什么? 在android团队的开发中,少不了与队员之间的合作.为了避免我们傻瓜式地复制粘贴对方的负责的那部分功能代码,我们可以用svn或者 ...

  8. python网络爬虫的基本步骤-黑客基础 编写Python爬虫入门步骤

    原标题:黑客基础 编写Python爬虫入门步骤 信息时代,数据就是宝藏.数据的背后隐含着无穷的宝藏,这些宝藏也许就是信息量所带来的商业价值,而大数据本身也将成为桌面上的筹码. 黑客花无涯 带你走进黑客 ...

  9. 电脑安装python步骤-windows10系统安装python的详细步骤

    Python是一门受广大用户所喜爱欢迎的.使用广泛的语言.最近,就有一些升级win10正式版的用户反映自己想要在新系统中安装Python软件,但是又不知道该如何操作.接下来,小编就为大家分享win10 ...

最新文章

  1. ubuntu安装node.js
  2. 2.4.2 死锁的处理策略-预防死锁
  3. Funnel-Transformer:让Transformer更高效地处理长序列
  4. TIBCO Rendezvous — 技术介绍
  5. android Handler Message传递参数,handler子线程和主线程通讯
  6. 使用container的嵌套_ElementUI 技术揭秘(4)— Container 布局容器组件的设计与实现。...
  7. 1-VVI-材料设计之-TabLayout上标签
  8. 设计模式学习——代理模式(Proxy Pattern)
  9. Java权限管理系统完整案例
  10. 笔记本键盘扣安装注意事项(小技巧)
  11. Swift高仿iOS网易云音乐Moya+RxSwift+Kingfisher+MVC+MVVM
  12. LOFTER轻博模板设计
  13. 防火墙、waf、ips和ddos的部署
  14. 清华大学计算机系毕业论文 android,清华大学计算机科学与技术系
  15. python设计麻将_python麻将和牌算法
  16. 防止win10自动更新——指定一个错误的升级服务器地址
  17. httprunner3.x使用过程中遇到的问题
  18. Figma又崩了,但我们P事没有
  19. 苹果手表计算机功能键,Apple Watch上的2个按键是这么玩的
  20. 基于深度强化学习的室内场景目标驱动视觉导航

热门文章

  1. Golang语言快速上手到综合实战视频教程
  2. Gamma校正与线性空间
  3. win10打印机共享问题集,及解决方法持续更新
  4. 华为ensp模拟器 给路由器配置DHCP
  5. vivo7.0系统手机最完美激活Xposed框架的教程
  6. mysql数据库基础知识点总结--看完即入门
  7. 高考2021北京录取成绩查询,2021北京地区高考成绩排名查询,北京高考各高中成绩喜报榜单...
  8. 制作启动U盘后出现“CD驱动器”问题
  9. centos 8.0 安装nginx
  10. A - 卡牌游戏 III