Python代码写多了,一定希望把自己的代码加入到Python的库中,可以作为工具使用,这样也方便大型系统的代码维护和管理。下面是本人的做法:
1创建一个目录,名称为TestPackage。
2在TestPackage目录下创建两个文件:__init__.py和webfunc.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
该文件定义了包中的常量var1和var2,同时在将来该包被import的时候一并把webfunc.py文件加载进来。
3创建一名称为TestPackage.pth的文件,内容只有一行:
./TestPackage
然后把该文件存放在Anaconda的系统库目录下,本人您使用的是Anaconda 2,并且库目录为:D:\Anaconda2\Lib\site-packages。该文件是告诉Python有一个Package的名称为TestPackage,它的代码存放目录为D:\Anaconda2\Lib\site-packages\TestPackage。
4把1、2两步创建的目录TestPackage连同文件,一起移动到D:\Anaconda2\Lib\site-packages目录下。
5在Spider中,使用下面的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了。