Contents
  1. 1. Pacaking a project

Build a wheel package and publish.

Pacaking a project

  • prepare the project

    1
    2
    3
    4
    5
    6
    7
    8
    pkg_demo
    ├── LICENSE
    ├── pkgdemo
    │   ├── __init__.py
    │   └── demo.py
    ├── README.md
    ├── requirements.txt
    └── setup.py
  • prepare pakcaging tool

    1
    2
    $ pip3 install setuptools
    $ pip3 install twine
  • build wheel

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    $ python3 setup.py bdist_wheel --universal

    pkg_demo
    ├── build
    │   ├── bdist.linux-x86_64
    │   └── lib
    │   └── pkgdemo
    │   ├── demo.py
    │   └── __init__.py
    ├── dist
    │   └── pkgdemo-0.0.1-py2.py3-none-any.whl
    ├── LICENSE
    ├── pkgdemo
    │   ├── demo.py
    │   └── __init__.py
    ├── pkgdemo.egg-info
    │   ├── dependency_links.txt
    │   ├── PKG-INFO
    │   ├── SOURCES.txt
    │   └── top_level.txt
    ├── README.md
    ├── requirements.txt
    └── setup.py
  • upload the package to pypi

    1
    $ twine upload dist/zjw_pkgdemo-0.0.1-py2.py3-none-any.whl
  • create a virtualenv and import the package

    1
    2
    3
    4
    5
    6
    7
    8
    9
    pip3 install zjw_pkgdemo
    Collecting zjw_pkgdemo
    Downloading https://files.pythonhosted.org/packages/13/e6/d5a4446281f81361ce11cb6d1a56df97771cbef343cfce3554bd4a920eb5/zjw_pkgdemo-0.0.1-py2.py3-none-any.whl
    Installing collected packages: zjw-pkgdemo
    Successfully installed zjw-pkgdemo-0.0.1

    >>> import pkgdemo.demo
    >>> pkgdemo.demo.info()
    This is a demo
  • reference

Contents
  1. 1. Pacaking a project