python 打包详解

基本步骤:

1. 写setup.py

2. 运行“python setup.py sdist”

3. 在当前目录下会生成文件夹“dist”,打包好的代码就在dist中,以“.tar.gz”的形式被压缩

4. 其他人下载压缩包,解压后直接“python setup.py install”,即可安装

 

setup.py 模板:

#!/usr/bin/env python

from distutils.core import setup

setup(
    name='foo',
    version='1.0.0',
    description='summary of your code',
    long_description='''detailed description of your code ''',
    author='your Name',
    author_email='your Email',
    url='',
    license='MIT',
    platforms='All',
    keywords=['22','333','4444','55555'],
    py_modules=['foo'],
)
View Code

其中:

  1. py_modules:是你要打包的py文件名,多个文件用逗号间隔。如果出现“foo.foo1”,则表明文件是‘foo/foo1’。其中foo是文件夹,必须包含“__init__.py”
  2. description和long_description可以理解为是标题和内容的关系
  3. long_description:起始和结束要加注释字符'''或者""",否则编译会报错
  4. 打包之后,在dist中生成的压缩包,名字是name-version.tar.gz(例如:foo-1.0.0.tar.gz)
  5. 安装后生成的egg-info内容如下,与setup.py的设置,一一对应。

====================================

Metadata-Version: 1.0
Name: foo
Version: 1.0.0
Summary: summary of your code
Home-page: UNKNOWN
Author: your name
Author-email: your Email
License: MIT
Description: detailed description of your code
Keywords: 22,333,4444,55555
Platform: All

==========================================

 

打包发布package:

如果要打包发布的不是单个文件,而是一个package的时候

不使用py_modules, 而是用packages。例如:

packages=["foo"]

此时当前目录下需要有文件夹foo,该文件夹中包含“__init__.py”。

 

如果package不在当前目录下,需要使用package_dir指定package的目录,例如:

package_dir={'foo':'lib'}

即目录是lib/foo

 

posted @ 2016-12-07 17:36  他山之小石头  阅读(643)  评论(0编辑  收藏  举报