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!哈哈