使用setuptools打包python项目
来源:互联网 发布:历代职官沿革史淘宝 编辑:程序博客网 时间:2024/06/06 11:47
使用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
0 0
- 使用setuptools打包python项目
- 【Python】用setuptools打包项目
- Python 使用setuptools打包安装
- python setuptools工具打包
- 使用setuptools自动安装python模块(setuptools)
- Python打包、安装与发布工具--setuptools
- python开发者打包发布工具Distutils | setuptools
- Python打包分发工具setuptools简介
- python使用setuptools打包并上传到PyPi版本库中
- python程序打包为egg——setuptools模块
- python Setuptools
- 使用setuptools自动安装python模块
- 使用setuptools自动安装python模块
- 使用setuptools自动安装python模块
- 使用setuptools自动安装python模块
- 可爱的 Python: 使用 setuptools 孵化 Python egg
- python安装python-setuptools
- python项目打包部署
- Cocos2dx实现精灵的加速(适用于塔防游戏)
- 随着双手之上的动作落下,一声细微的闷响徒然响彻开来
- Delphi6 调试
- Linux挂载NTFS硬盘
- MyJobLink链接MapReduce作业案例,新旧API比较
- 使用setuptools打包python项目
- 而且通过这种办法摄取的元气不论多么的雄浑与庞大,对于他的经脉皆是不会出现一丝的损伤
- jqGrid怎么设置初始化页面时不加载数据(不向服务器请求数据)
- <context-param>与<init-param>的区别与作用
- 经典问题之汉诺塔
- hdu5384 Danganronpa
- 第八集 顺序最小优化算法
- grabCut函数
- NOPI导出标准格式Excel