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 python菜鸟学习笔记(第四章)

head first python2.共享你的代码 函数模块

《head first python》windows环境下,如何解决sudo不是内部命令问题。

《head first python》windows环境下,如何解决sudo不是内部命令问题。

如何在 Django Settings.py 中导入另一个 Python 3 文件?

《Head First Servlets & JSP》-2-概述