Head First Python(如何向PYPI发布你的代码)学习笔记

Head  First  Python(如何向PYPI发布你的代码)

当我们编写好的一个完美的python程序或者一个好的项目程序时,那时作为程序猿的我们是如何的激动啊,在那激动的时刻如何与他人分享我们胜利的果实呢?看这里~哈哈

为了共享这个模块,需要将它发布出去,在python中,所谓发布(distribution)是指一个文件集合,将这些文件联合到一起允许你构建,打包和发布你的模块,一旦发布,就可以

把模块先安装到你的本地python上,还有就是可以把你的代码上传到PYPI与全世界共享你的代码啦,呵呵!看上去很蒙吧! 做起来可是很简单的!

  1、首先在你的linux上创建一个文件夹吧(随便在哪啦,无所谓哈哈)

比如我现在我的linux root目录下创建一个叫做distribution的文件夹

  [[email protected] ~]# mkdir /root/distribution

创建好后呢,就把我要发布的python代码文件copy(复制)到distribution目录下,myftp.py  这个就是我用python编写的代码啦

  [[email protected] ~]# cp /var/ftp/pub/myftp.py  /root/distribution/

检查一下(这是个好习惯啊)

  [[email protected] ~]# ls -l /root/distribution/

        -rw-r--r-- 1 root root 4268 1月  23 10:36 myftp.py

在/root/distribution/目录下再建一个setup.py文件

[[email protected] ~]# cd /root/distribution/

        [[email protected] distribution]# touch  setup.py

        [[email protected] distribution]# ls -l

        -rw-r--r-- 1 root root 4268 1月  23 10:36 myftp.py

         -rw-r--r-- 1 root root    0 1月  23 10:39 setup.py

编辑setup.py这个文件

from distutils.core import setup

setup (

        name         = ‘xiaowei‘, 

        version      = ‘1.0‘,

        py_modules   = [‘myftp‘],

        author       = ‘xiaowei‘,

        author_email = ‘[email protected]‘,

        url          = ‘http://www.example.com‘,

        description  = ‘just like a ftp server ‘,

       )

到这里我们就要发布啦。到此/root/distribution/目录下已经有两个文件啦,myftp.py存放python代码的文件,setup.py存放有关代码元数据的文件

2、在linux命令行下敲入如下命令将构建一个发布

[[email protected] distribution]# python setup.py sdist

running sdist

warning: sdist: manifest template ‘MANIFEST.in‘ does not exist (using default file list)

warning: sdist: standard file not found: should have one of README, README.txt

file ftp.py (for module ftp) not found

writing manifest file ‘MANIFEST‘

creating xiaowei-1.0

making hard links in xiaowei-1.0...

hard linking setup.py -> xiaowei-1.0

creating dist

tar -cf dist/xiaowei-1.0.tar xiaowei-1.0

gzip -f9 dist/xiaowei-1.0.tar

tar -cf dist/xiaowei-1.0.tar xiaowei-1.0

gzip -f9 dist/xiaowei-1.0.tar

removing ‘xiaowei-1.0‘ (and everything under it)

3、将发布安装到本地python中(就是先安装到linux上python的库文件中)

[[email protected] distribution]# python setup.py install

running install

running build

running build_py

creating build

creating build/lib

copying myftp.py -> build/lib

running install_lib

copying build/lib/myftp.py -> /usr/lib/python2.6/site-packages

byte-compiling /usr/lib/python2.6/site-packages/myftp.py to myftp.pyc

running install_egg_info

Removing /usr/lib/python2.6/site-packages/xiaowei-1.0-py2.6.egg-info

Writing /usr/lib/python2.6/site-packages/xiaowei-1.0-py2.6.egg-info

再看看/root/distribution/目录下有什么东东

[[email protected] distribution]# tree -L 2  .

├── build

│   └── lib

├── dist

│   └── xiaowei-1.0.tar.gz

├── MANIFEST

├── myftp.py

└── setup.py

此时可以在你的linux python解释器里导入import myftp试试啦,因为你已经在要发布到pipy之前先安装到本地啦

4、下面要上传啦(关键时刻啊)

我们要上传我们自己的代码的先在PYPI有属于我们的存放代码的‘仓库’是吧,是不是得先注册啊

先登录官网去注册一个属于我们自己的账户吧https://pypi.python.org/pypi(pypi官网)

登录后如果有账户的话就直接点击login登录吧,没有注册过没有就点击register(注册)吧

当我们点击register(注册)后出现的内容哦

1、 用户名(自己起并吧)

2、 密码(如果不符合要求会出现提示哦)

3、 密码确认哦

4、  email(邮箱地址)

5、  这个我还不懂,不过不用谢啊,不影响的(惭愧啊)

6、  都填写完后点击register吧,然后会给你所填的邮箱发封激活邮件,激活完毕就注册成功啦,

7、   然后就返回点击登录吧

5、接下来就像pypi上传吧

在linux命令行输入如下命令

[[email protected] distribution]# python setup.py register.

invalid command name ‘register.‘

[[email protected] distribution]# python setup.py register

running register

Registering xiaowei to http://pypi.python.org/pypi

Server response (200): OK

怎么还要人家注册啊,哈哈,没关系就是要在你的本地linux上存一个记录而已

终于要上传啦

[[email protected] distribution]# python setup.py sdist upload

running sdist

reading manifest file ‘MANIFEST‘

creating xiaowei-1.0

making hard links in xiaowei-1.0...

hard linking setup.py -> xiaowei-1.0

tar -cf dist/xiaowei-1.0.tar xiaowei-1.0

gzip -f9 dist/xiaowei-1.0.tar

tar -cf dist/xiaowei-1.0.tar xiaowei-1.0

gzip -f9 dist/xiaowei-1.0.tar

removing ‘xiaowei-1.0‘ (and everything under it)

running upload

Submitting dist/xiaowei-1.0.tar.gz to http://pypi.python.org/pypi

Server response (200): OK

看到OK啦,快去pypi上看看吧

在我账户信息这出现了myftp了,由此是不是就确定上传成功了呢,点开再看看吧

出现了一些关于myftp这个代码文件的描述信息啊,点击show

可以让别人下载啦

END!哈哈

时间: 2024-10-19 00:18:18

Head First Python(如何向PYPI发布你的代码)学习笔记的相关文章

《python基础教程(第二版)》学习笔记 字符串(第3章)

<python基础教程(第二版)>学习笔记 字符串(第3章)所有的基本的序列操作(索引,分片,乘法,判断成员资格,求长度,求最大最小值)对字符串也适用.字符串是不可以改变的:%左侧是格式字符串,右侧是需要格式化的值print '%s=%d' % ('x',100) ==> x=100%% 格式字符串中出现 %模板字符串:from string import Templates=Template('$x is 100');  s.substitute(x='ABC');  ==> '

《Python基础教程(第二版)》学习笔记 -&gt; 第九章 魔法方法、属性和迭代器

准备工作 >>> class NewStyle(object): more_code_here >>> class OldStyle: more_code_here 在这两个类中,NewStyle是新式的类,OldStyle是旧式的类,如果文件以__metaclass__ = type 开始,那么两个类都是新式类. 构造方法 构造方法,当一个对象被创建后,会立即调用构造方法.Python中创建一个构造方法,只要把init方法的名字从简单的init修改成__init__

《Python基础教程(第二版)》学习笔记 -&gt; 第十章 充电时刻 之 标准库

SYS sys这个模块让你能够访问与Python解释器联系紧密的变量和函数,下面是一些sys模块中重要的函数和变量: 函数和变量 描述 argv 命令行参数,包括脚本和名称 exit([arg])                退出当前的程序,可选参数为给定的返回值或者错误信息 modules 映射模块名字到载入模块的字典 path 查找模块所在目录的目录名列表 platform 平台标识符 stdin 标准输入流-- 一个类文件对象 stdout 标准输出流-- 一个类文件对象 stderr

《python基础教程(第二版)》学习笔记 字典(第4章)

<python基础教程(第二版)>学习笔记 字典(第4章)创建字典:d={'key1':'value1','key2':'value2'}lst=[('key1','value1'),('key2','value2')]; d=dict(lst)d=dict(key1='value1', key2='value2')字典基本操作:d={'key1':'value1','key2':'value2'}; len(d) ==> 2 #字典中的键值对数量d={'key1':'value1','

《python基础教程(第二版)》学习笔记 基础部分(第1章)

<python基础教程(第二版)>学习笔记基础部分(第1章)IDEWindows: IDLE(gui), Eclipse+PyDev; Python(command line);Linux/Unix: python >>> 1/2=0 注意整除得0>>> from __future__ import division 执行普通的除法python -Qnew 执行普通的除法 //整除,  1//2=0:%取余数:**乘幂长整型数: 末尾带L十六进制,以0x开头

《Python基础教程 第2版 修订版》学习笔记(一)

<Python基础教程 第2版 修订版>学习笔记(一) 第一章:快速改造:基础知识 1.1 安装Python (略) How to Become a Hacker: http://www.catb.org/~esr/faqs/hacker-howto.html 中文版:如何成为一名黑客 http://blog.jobbole.com/64196/ (伯乐在线版,个人认为目前比较完善的版本) 1.2 交互解释器 >>> 1.3 算法是什么 目标:煮一盘午餐肉加鸡蛋的食物 过程:

《python基础教程(第二版)》学习笔记 语句/循环/条件(第5章)

print 'AB', 123 ==> AB 123 # 插入了一个空格print 'AB', 'CD' ==> AB CD # 插入了一个空格print 1,2,3 ==> 1 2 3print (1,2,3) ==> (1, 2, 3)#在脚本中以下ABCD连在一起输出print 'AB',print 'CD' import somemodule #导入模块from somemodule import somefunction #导入函数from somemodule impo

《python基础教程(第二版)》学习笔记 文件和素材(第11章)

打开文件:open(filename[,mode[,buffering]]) mode是读写文件的模式f=open(r'c:\somefile.txt') #默认是读模式+ 表示是可以读写:r 读模式:w 写模式:a 追加模式:b 二进制模式:换行符在Windows为\r\n,在Unix中为\n, Python会自动转换: buffering缓冲:0表示无缓冲:1表示有缓冲(使用flush或close才会写到硬盘中): sys.stdin 标准输入:sys.stdout 标准输出; sys.st

Python编程入门-第三章 编写程序 -学习笔记

第三章 编写程序 1.编辑源程序.运行程序 可通过IDLE中File>New File新建一个文本以编辑源程序,编辑完成可通过Run>Run Module(或者F5快捷键)来运行程序.Python源文件都以.py格式存储. 2.从命令行运行程序 除了上述利用IDLE的集成功能运行程序的方式外,当然也可以通过命令行运行程序,命令格式为:python ‘源文件名称.py’. 3.编译源代码 当运行py格式文件时,Python会自动创建相应的.pyc文件,该文件包含编译后的代码即目标代码,目标代码基