使用setuptools打包Python Scrapy程序
0、目标
开发机上(Ubuntu14.04)有一个BloomFilter算法的简单实现,使用setuptools对其进行打包发布。
1、安装setuptools
sudo apt-get install python-setuptools
2、项目的目录结构
因为使用Scrapy创建的项目baidutieba,所以项目目录结构如下:
demo
|--bloomfilter
|--__init__.py
|--bloomfilter.py
|--readme.txt
|--bf.pkl
其中,txt文件是说明文档文件,pkl文件是一个bloomfilter中的对象实例的pickle文件。
3、创建setup.py文件
在项目根目录(demo)下创建文件setup.py,内容如下:
from setuptools import setup, find_packages
setup(
name = "bloomfilter",
version = "0.1",
packages = find_packages(),
package_data = {
'bloomfilter':['*.txt','*.pkl'],
}
)
packages = find_packages()参数指定在当前目录下搜索包;
package_data定义了包含bloomfilter包中的txt文件和pkl文件。
4、将项目打包成egg文件
执行命令:
python setup.py bdist_egg
命令执行成功后,项目目录结构为:
demo/
|--bloomfilter/
|--__init__.py
|--bloomfilter.py
|--readme.txt
|--bf.pkl
|--bloomfilter.egg-info/
|--dependency_links.txt
|--PKG-INFO
|--SOURCES.txt
|--top_level.txt
|--build/
|--bdist.linux-x86_64/
|--lib.linux-x86_64-2.7/
|--dist/
|--bloomfilter-0.1-py2.7.egg
|--setup.py
5、安装项目
执行命令:
sudo python setup.py install
安装过程会生成下面这个egg文件:
/usr/local/lib/python2.7/dist-packages/bloomfilter-0.1-py2.7.egg
查看egg中包含的文件:
unzip -l bloomfilter-0.1-py2.7.egg
Archive: bloomfilter-0.1-py2.7.egg
Length Date Time Name
--------- ---------- ----- ----
1 2015-08-25 15:45 EGG-INFO/zip-safe
241 2015-08-25 15:45 EGG-INFO/SOURCES.txt
12 2015-08-25 15:45 EGG-INFO/top_level.txt
183 2015-08-25 15:45 EGG-INFO/PKG-INFO
1 2015-08-25 15:45 EGG-INFO/dependency_links.txt
932 2015-08-25 14:23 bloomfilter/bloomfilter.py
1255 2015-08-25 14:57 bloomfilter/bf.pkl
0 2015-08-25 15:38 bloomfilter/readme.txt
2762 2015-08-25 15:45 bloomfilter/bloomfilter.pyc
0 2015-08-25 14:24 bloomfilter/__init__.py
139 2015-08-25 15:45 bloomfilter/__init__.pyc
--------- -------
5526 11 files
可以看到所有文件全部打包成功了。
6、测试
进入python命令行,直接使用安装过的包:
>>> from bloomfilter.bloomfilter import *
>>> bf = BloomFilter(50)
>>> bf.add("www.baidu.com")
>>> bf.add("www.google.com")
>>> bf.contains("www.baidu.com")
True
>>> bf.contains("www.sina.com")
False
7、其他参考
http://pythonhosted.org/setuptools/setuptools.html#basic-use
http://stackoverflow.com/questions/774824/explain-python-entry-points
本文详细介绍了如何使用setuptools在Ubuntu14.04上打包一个包含BloomFilter算法的Scrapy项目。首先,通过apt-get安装setuptools,然后创建项目目录结构,编写setup.py文件,指定包和数据文件。接着,执行bdist_egg命令生成egg文件,最后通过setup.py安装项目,并进行测试验证。提供了setuptools的官方文档和StackOverflow问题链接作为参考资料。

234

被折叠的 条评论
为什么被折叠?



