如何在Python中增加自定义的软件包(Package)

本文介绍如何创建并使用自定义Python库。通过实例演示了库的基本结构,包括必要的文件及目录设置,以及如何导入和使用库中的函数和变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



Python代码写多了,一定希望把自己的代码加入到Python的库中,可以作为工具使用,这样也方便大型系统的代码维护和管理。下面是本人的做法:

1创建一个目录,名称为TestPackage

2TestPackage目录下创建两个文件:__init__.pywebfunc.py

        其中webfunc.py的内容为:

 

# -*- coding: utf-8 -*-

"""

Created on Thu Jul 06 14:32:59 2017

 

@author: hxx

"""

 

import httplib

 

def check_web_server(host,port,path):

   h =httplib.HTTPConnection(host,port)

   h.request('GET',path)

   resp = h.getresponse()

   print 'HTTP Response:'

   print '\tstatus =',resp.status

   print '\treason =',resp.reason

   print 'HTTP Headers:'

   for hdr inresp.getheaders():

       print '\t%s: %s' %hdr       

       

if __name__ == '__main__':

   check_web_server(host='www.badidu.com',port=80,path='/')

        

python中单独测试通过。

__init__.py的内容为:

 

# -*- coding: utf-8 -*-

"""

Created on Thu Jul 06 14:29:41 2017

 

@author: hxx

"""

 

var1 = 'This is var1'

var2 = 'This is var2'

 

from . import webfunc

 

该文件定义了包中的常量var1var2,同时在将来该包被import的时候一并把webfunc.py文件加载进来。

 

3创建一名称为TestPackage.pth的文件,内容只有一行:

                  

./TestPackage

                

        然后把该文件存放在Anaconda的系统库目录下,本人您使用的是Anaconda 2,并且库目录为:D:\Anaconda2\Lib\site-packages。该文件是告诉Python有一个Package的名称为TestPackage,它的代码存放目录为D:\Anaconda2\Lib\site-packages\TestPackage

 

412两步创建的目录TestPackage连同文件,一起移动到D:\Anaconda2\Lib\site-packages目录下。

5Spider中,使用下面的IPython命令窗口下测试该包:

        

In[1]: importTestPackage as tp    # 加载自建的TestPackage

        

In[2]: tp.var1                            # 测试包中的var1变量

Out[2]: 'This is var1'

 

In[3]: tp.var2                            #测试包中的var2变量

Out[3]: 'This is var2'

 

#测试位于webfunc.py文件中的check_web_server函数

In[4]: tp.webfunc.check_web_server(host='www.baidu.com',port=80,path='/')     

HTTP Response:

       status =  200

       reason =  OK

HTTP Headers:

       content-length: 14613

       set-cookie:BAIDUID=B5D0996DB06D3F6CF29EE488828FE7AF:FG=1; expires=Thu, 31-Dec-37 23:55:55GMT; max-age=2147483647; path=/; domain=.baidu.com,BIDUPSID=B5D0996DB06D3F6CF29EE488828FE7AF; expires=Thu, 31-Dec-37 23:55:55 GMT;max-age=2147483647; path=/; domain=.baidu.com, PSTM=1499329581; expires=Thu,31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com

       accept-ranges: bytes

       vary: Accept-Encoding

       server: BWS/1.1

       last-modified: Wed, 28Jun 2017 02:16:00 GMT

       connection: Keep-Alive

       x-ua-compatible:IE=Edge,chrome=1

       pragma: no-cache

       cache-control:no-cache

       date: Thu, 06 Jul 201708:26:21 GMT

       p3p: CP=" OTI DSPCOR IVA OUR IND COM "

       content-type:text/html

        

        如果以上5步都能够顺利完成,则一个简单的Package就能够正常工作了,参考该例子相信您能够完成更为复杂的Package了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值