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

猫咪不爱吃鱼鱼 2016-11-11

系统: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的文件,文件内容如下所示:

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

  现在dog这个目录中已经包含了两个文件setup.py和lsname.py这个文件,我们在终端中输入命令:

  python3 setup.py sdist  ,然后目录下会多出几个文件和目录,如图所示 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐