环境准备:
ubuntu14.xx
python2.7(只实测了这个版本)
setuptools(egg包是需要)(sudo apt-get install python-setuptools)
Package的制作与安装过程
1. 编写module.py程序
# -*- coding: utf-8 -*-
# Author : ***
# Date: ***
# Email: ***
class module(object):
pass
# 省略一万字
2. 编写模块
mypkg/ __init__.py module.py data/ tables.dat spoons.dat forks.dat
3. 写setup.py文件
setup.py中各个参数的含义请参考python官网Writing the Setup Script
from setuptools import setup setup(..., packages=['mypkg'], package_dir={'mypkg': 'src/mypkg'}, package_data={'mypkg': ['data/*.dat']}, install_requires=["jieba"] )package_dir中“:”前是包名后面是包的位置。
package_data“:”前是包名,后面是data的路径。
install_requries中是依赖包的名称,如果未安装则自动下载依赖包安装。
另外,如果没有依赖包需要下载安装,第一行可以换为:
from distutils.core import setup
4. 添加需要的文件到安装包
默认的文件添加项有:
- all Python source files implied by the py_modules andpackages options
- all C source files mentioned in the ext_modules orlibraries options
- scripts identified by the scripts optionSeeInstalling Scripts.
- anything that looks like a test script: test/test*.py (currently, theDistutils don’t do anything with test scripts except include them in sourcedistributions, but in the future there will be a standard for testing Pythonmodule distributions)
- README.txt (orREADME), setup.py (or whatever youcalled your setup script), andsetup.cfg
- all files that matches the package_data metadata.SeeInstalling Package Data.
- all files that matches the data_files metadata.SeeInstalling Additional Files.
5. 制作可安装包
使用终端进入setup.py所在文件夹下执行下面指令。一般生成dist文件夹下的一个可安装文件
a. 制作压缩包(zip/tar.gz)
#python setup.py sdist #生成压缩包(zip/tar.gz)
#python setup.py bdist_wininst #生成NT平台安装包(.exe)
#python setup.py bdist_rpm #生成rpm包
b. 制作egg安装包
#python setup.py bdist_egg
6. 安装Package
安装生成的目录都放在了/usr/local/lib/python2.7/dist-packages/下
#python setup.py install # tar.gz 解压后进入含有setup.py的目录执行
#easy_install xxx.egg
7.卸载Package
a. egg卸载:
手动删除很简单: vim $python_path/Lib/site-packages/easy-install.pth,删除到egg包名所在行,:wq,重启python环境。
这样做了之后egg包还是遗留下来了,没有被清除,不过这个不用担心,egg包已经不能被引用到python环境了,因为包名中不能有连字符-,而egg文件名中却包含连字符。
另外也可以尝试卸载命令easy_install -m package-name
b. tar.gz卸载:
tar.gz安装后的卸载一般通过删除文件夹的方式。
一种更好的方案是:
setup.py 帮助你纪录安装细节方便你卸载
python setup.py install --record log
这时所有的安装细节都写到 log 里了,想要卸载的时候
cat log | xagrs rm -rf
就可以干净卸载了
8. 上传package到pypi,使用pip安装
#python setup.py register
#python setup.py bdist_egg
#python setup.py sdist upload
#pip install packagename # 安装
#pip install -U packagename # 更新
#pip uninstall packagename # 卸载
#pip search packagename # 搜索
#pip help