Head First Python(如何向PYPI发布你的代码)学习笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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!哈哈
以上是关于Head First Python(如何向PYPI发布你的代码)学习笔记的主要内容,如果未能解决你的问题,请参考以下文章
head first python2.共享你的代码 函数模块
《head first python》windows环境下,如何解决sudo不是内部命令问题。
《head first python》windows环境下,如何解决sudo不是内部命令问题。