【Python实战02】共享Python代码到PyPI社区
之前学习了Python的列表,以及编写了一个函数来进行列表的输出,这次我们就继续来学习如何把我们已经编写好的代码共享到PyPI社区,这里以上篇文章中编写的print_lol函数为例。
函数转换为模块
def print_lol(movies):
for item_1 in movies:
if isinstance(item_1,list):
print_lol(item_1)
else:
print(item_1)
当然我们也可以给这个函数增加一些注释,以便于清楚的知道这个函数的功能,在Python中注释使用三个"来表示,如下:
"""这里是wukong模块,print_lol函数专门用来输出一个列表"""
def print_lol(movies):
for item_1 in movies:
if isinstance(item_1,list):
print_lol(item_1)
else:
print(item_1)
然后我们可以在python的IDLE中按下F5来重新启动Python Shell,这是就是加载当前我们定义的这个模块,我们直接可以使用这个模块进行列表的打印,如下:
>>> ================================ RESTART ================================
>>>
>>> movies = ["The Holy Grail",1975,"Terry Jones & Terry Gilliam",91,
["Graham chapman",["Michael Palin","John cleese","Terry Gilliam","Eric Idle & Terry Jones"]],
"The Life of Brain",1979,"Terry Jones",94,
["Graham chapman",["Michael Palin","John cleese","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
The Life of Brain
1979
Terry Jones
94
Graham chapman
Michael Palin
John cleese
Terry Gilliam
Eric Idle & Terry Jones
>>>
这里我们能看到RESTART的字样,说明Python Shell已经重新启动了,这样也说明我们的模块也已经加载了,所以在之后的movies打印之前我们并没有定义print_lol函数,而可以直接使用了。
准备发布
"""从python发布工具导入setup函数"""
from distutils.core import setup
"""设置setup函数的参数,其中py_modules为我们将要发布的模块,这里为wukong.py,所以值为wukong"""
setup(
name = 'wukong',
version = '1.0.0',
py_modules = ['wukong'],
author = 'wukongcode',
author_email = 'bjwangzhen@pku.edu.cn',
url = 'http://blog.csdn.net/wukongcode',
description = 'A simple printer of nested lists',
)
3、构建一个发布文件,在D:\python\wukong文件夹下打开一个终端,这里为DOS,键入一行命令:python setup.py sdist,前提是我们要配置好python的环境变量,如下:
>>> import wukong
>>> names = ['zhangsan','lisi','wangwu']
>>> print_lol(names)
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
print_lol(names)
NameError: name 'print_lol' is not defined
>>>
我们使用import wukong将我们的模块导入到其中了,但是在使用时却报错了。说没有找到print_lol,这是因为在Python有一个命名空间的概念,默认情况下是在__main__的命名空间中,而我们的代码在wukong命名空间中,所以我们这里要指定对应的命名空间,如下:
>>> import wukong
>>> names = ['zhangsan','lisi','wangwu']
>>> wukong.print_lol(names)
zhangsan
lisi
wangwu
>>>
这里我们通过wukong.print_lol来调用此方法。
注册PyPI网站
点击打开链接)注册我们自己的账号:
向PyPI上上传代码
首先我们要在DOS中填写下我们在PyPI上注册的信息,这个在本机上只需执行一次。如下:
【Python实战02】共享Python代码到PyPI社区的更多相关文章
- 【Python实战】使用Python连接Teradata数据库???未完成
1.安装Python 方法详见:[Python 05]Python开发环境搭建 2.安装Teradata客户端ODBC驱动 安装包地址:TTU下载地址 (1)安装TeraGSS和tdicu(ODBC依 ...
- python实战===一句python代码搭建FTP服务
环境搭建: python windows/linux pip install pyftpdlib (安装失败请到这里下载:https://pypi.python.org/pypi/pyftpdlib ...
- 再一波Python实战项目列表
前言: 近几年Python可谓是大热啊,很多人都纷纷投入Python的学习中,以前我们实验楼总结过多篇Python实战项目列表,不但有用还有趣,最主要的是咱们实验楼不但有详细的开发教程,更有在线开发环 ...
- python实战:用70行代码写了一个山炮计算器!
python实战训练:用70行代码写了个山炮计算器! 好了...好了...各位因为我是三年级而发牢骚的各位伙伴们,我第一次为大家插播了python的基础实战训练.这个,我是想给,那些python基础一 ...
- Python 1行代码实现文本分类(实战笔记),含代码详细说明及运行结果
Python 1行代码实现文本分类(实战笔记),含代码详细说明及运行结果 一.详细说明及代码 tc.py =============================================== ...
- 上传python代码到pypi
上传python代码到pypi 去pypi官网注册账号 在项目中添加setup.py # coding = utf-8 from setuptools import setup, find_packa ...
- 推荐学习《Python与量化投资从基础到实战》PDF及代码+《量化投资以Python为工具》PDF及代码
利用python分析量化投资问题是现在研究的热点,推荐两份资料用于学习 <Python与量化投资:从基础到实战>主要讲解如何利用Python进行量化投资,包括对数据的获取.整理.分析挖掘. ...
- headfirst python 01~02
列表 列表就像是数组 在python 创建一个列表时, 解释器会在内存中创建一个类似数组的数据结构来存储数据, 数据项自下而上(形成一个堆栈), 类似于其他编程语言中的数组. 列表中常用方法: cas ...
- 自然语言处理之中文分词器-jieba分词器详解及python实战
(转https://blog.csdn.net/gzmfxy/article/details/78994396) 中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块,在进行中文自 ...
随机推荐
- HDU 5265 pog loves szh II (技巧)
题意:给一个数字序列,要求再其中找到两个数,其和再模p的结果是最大的,求此和. 思路:先将输入的元素模p,排序.结果可能有两种情况: (1)a+b大于p:肯定由两个最大的数之和来产生. (2)a+b小 ...
- Spring AOP简介
AOP简述 AOP的概念早在上个世纪九十年代初就已经出现了,当时的研究人员通过对面向对象思想局限性的分析研究出了一种新的编程思想来帮助开发者减少代码重复提高开发效率,那就是AOP,Aspect-Ori ...
- phonegap 退出确认
实现 再按一次退出 ,这里只针对 主active继承 DroidGap 或者CordovaActive 以下有2种 方案1: 重写CordovaWebView类 新建类NobackWebView p ...
- 基于catalog 创建RMAN存储脚本
--============================== -- 基于catalog 创建RMAN存储脚本 --============================== 简言之,将rman的 ...
- mysql 概念和逻辑架构
1.MySQL整体逻辑架构 mysql 数据库的逻辑架构如下图: 第一层,即最上一层,所包含的服务并不是MySQL所独有的技术.它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安 ...
- windows 不能在本地计算机启动apache2 的解决方法(不是修改端口)
使用命令行运行apache目录下的httpd程序,它会提示哪里出错了,修改即可 D:\Program Files (x86)\Apache2.\bin\httpd
- js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
最近做了一个项目,需要用子域名调用主域名下的一个现有的功能,于是想到了用jsonp来解决,在我们平常的项目中不乏有这种需求的朋友,于是记录下来以便以后查阅同时也希望能帮到大家,需要了解的朋友可以参考下 ...
- ipad iphone 开发的应用,加一个启动预览图片
如果你想在你的ipad,iphone应用启动是不显示黑屏幕,而是用一个图片代替的话,你只需要吧一张名为 Default.png 的图片加到项目里就行了. 很简单吧,新手们记得去这样美化下你的应用吗,很 ...
- 自己的一个LESS工具函数库
自己大概在一年前开始使用LESS编写样式,现在感觉不用LESS都不会写样式了.现在写静态页面完全离不开LESS与Zen Coding,我可以不用什么IDE,但这两个工具却必须要,当然也强烈推荐看到这篇 ...
- U盘安装CentOS无法进入Centos系统解决办法
转自:http://blog.sina.com.cn/s/blog_3feedf320101idlu.html 目前使用U盘安装系统逐渐因为它的便捷而受到人们的欢迎,但是使用U盘来安装Cent ...