您的位置:首页 > 编程语言 > Python开发

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

2016-01-27 11:56 706 查看
转载请注明博客的来源,谢谢!

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

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

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

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

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

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

[root@localhost ~]# mkdir /root/distribution


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

[root@localhost ~]# cp /var/ftp/pub/myftp.py  /root/distribution/


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

[root@localhost ~]# ls -l /root/distribution/

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


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

[root@localhost ~]# cd /root/distribution/

[root@localhost distribution]# touch  setup.py

[root@localhost 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 = '15623xxx.@qq.com',

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

description  = 'just like a ftp server ',

)


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

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

[root@localhost 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的库文件中)

[root@localhost 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/目录下有什么东东

[root@localhost 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命令行输入如下命令

[root@localhost distribution]# python setup.py register.

invalid command name 'register.'

[root@localhost distribution]# python setup.py register

running register

Registering xiaowei to http://pypi.python.org/pypi 
Server response (200): OK


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

终于要上传啦

[root@localhost 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!哈哈
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: