码迷,mamicode.com
首页 > 编程语言 > 详细

python中如何使用pip安装自己的第三方模块

时间:2016-11-08 14:46:41      阅读:328      评论:0      收藏:0      [点我收藏+]

标签:python   import   第三方模块   setup.py   

   系统:CentOS6.8    python版本:python3.5

   文本编辑器:vim 

   python中我们很多时候,需要将自己的py文件导入到python路径中,但是我们自己的文件自身并不在python默认的库文件路径下,这时候就需要我们自己将我们的py文件import进入了

   下面示例怎么导入自己的第三方模块,我们首先需要自己创建一个.py文件,名字随意明名了,但是不要和python内部模块重命,内部模块路径在/usr/lib/python3.5/site-packages。要不然使用python提供的一些模块的方法时就悲剧了。

   我们写代码看看一个列表是否是含有列表嵌套,如果有嵌套,就拆开输出,环境python3,命名为liname.py

#!/usr/bin/env python3
    def print_list(the_list):              传出一个列表参数
        for item in the_list:           挨个遍历列表元素
            if isinstance(item,list):      判断每个元素是否为列表
                print_list(item)       调用自身做
            else:
                print(item)

   我们想要将这个.py文件变成一个模块,我们可以使用Python包索引(Python Package Index,PyPI)这 样一个互联网中第三库的集中管理,我们首先创建一个目录,名字还是随意啊,比如就叫dog

   在这个目录中创建一个名字为setup.py的文件,文件内容如下所示:

  技术分享

   现在dog这个目录中已经包含了两个文件setup.py和lsname.py这个文件,我们在终端中输入命令:
   python3 setup.py sdist  ,然后目录下会多出几个文件和目录,如图所示

   技术分享  然后我们使用命令: python3 setup.py install 安装

 技术分享

   然后我们再python3的交互式命令行下导入模块,输入一个列表,然后调用,会触发下列异常

技术分享

   这是因为我们的python的主程序中的代码模块与一个名为__main__的命名空间关联,将代码放在其单独的模块中时,python会自动创建与模块同名的命名空间。因此我们的模块中的代码会与一个名为liname的命名空间关联

  我们刚进入到python的交互式命令行的时候是和__main__这个命名空间相关联的,我们想要使用liname这个空间的print_list方法时不能单纯的使用这个函数,而需要这样使用liname.print_list()这样子使用,比如:

  技术分享

这样子就完全没有问题了。

   如果我们自己本身写了一段很好的代码,想将它贡献出去,除了github外,我们可以放在pypi这个网站上,也就是我们使用pip或者easy_install这样的命令安装

   我们先在PyPI网站上(http://pypi.python.org/),来注册我们的信息

   技术分享

   注册完成后我们就开始向PyPI上传我们的代码,上传时我们要知道我们注册时的账号和密码,因为接下来会用到 技术分享

  因为我没什么好的代码贡献所以,后面的步骤略去,进行完了这些步骤,我们就可以上传了,

我们使用命令:python3 setup.py upload

  至此我们自己写的代码就贡献给了PyPI社区,别人如果想要安装我们这个模块,就可以通过pip或者easy_install这种方式来安装我们的模块了

 

本文出自 “berniem2m” 博客,请务必保留此出处http://berniem2m.blog.51cto.com/9203249/1870497

python中如何使用pip安装自己的第三方模块

标签:python   import   第三方模块   setup.py   

原文地址:http://berniem2m.blog.51cto.com/9203249/1870497

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!