模塊打包

1.什麼是模塊打包

  • 模塊打包目的是讓本身開發的功能可以實現共享,供給他人使用;
  • 包管理索引平臺:Python Package Index;

2.怎麼打包

  • tar.gz格式:這個就是標準壓縮格式,裏面包含了項目元數據和代碼,能夠使用Python setup.py sdist命令生成;
  • egg格式:它也是壓縮文件,只是擴展名換了,裏面包含了項目元數據以及源代碼,這個格式由setuptools項目引入, 能夠經過命令Python setup.py bdist_egg命令生成;
  • whl格式:這個是Wheel包,也是一個壓縮文件,只是擴展名換了,裏面包含了項目元數據和代碼,還支持免安裝直接運行,whl分發包內的元數據和egg包是有些不一樣的,能夠經過命令Python setup.py bdist_wheel生成;
  • 在pycharm的site-packages中,咱們安裝的第三方包都會被安裝在這裏,這裏的以.dist-info結尾的目錄,就是這個庫的元數據,是從分發包中備份出來的,.dist-info類型的目錄來自於Wheel格式的分發包, 也有些是.egg-info類型的目錄,就是Egg格式的分發包
site-packages
├── IPython
├── Jinja2-2.10.dist-info
├── MarkupSafe-1.1.0.dist-info
├── Pygments-2.2.0.dist-info
├── Send2Trash-1.5.0.dist-info
├── __pycache__
├── appnope
├── appnope-0.1.0.dist-info
├── backcall
├── backcall-0.1.0.dist-info
├── bleach
├── bleach-3.0.2.dist-info
├── certifi
├── certifi-2018.10.15.dist-info
├── chardet
├── chardet-3.0.4.dist-info

3.如何打包、打包後推送到哪裏

  • 建立須要打包的模塊;
package/
├── README.rst
├── etc
│   └── xkd.conf
├── first_package
│   └── __init__.py
├── second_package
│   └── __init__.py
└── setup.py
  • 填寫setup.py文件內容;
from setuptools import setup, find_packages
setup(
    name='package',
    version='1.0.0',
    packages = find_packages(),
    install_requires=[
        "requests>=2.19.1",
        "PyYAML>=3.13",
    ],
    description='XKD COURSE FOR TEST',
    long_description=open("README.rst").read(),
    url='github 地址',
    author='Robby',
    author_email='yinhuanyicn@gmail.com',
    license='Apache License 2.0',
    package_data = {
        # 將 .txt和.rst文件也打包進去
        '': ['*.txt', '*.rst'],
    },
    data_files=['etc/xkd.conf',],
    keywords=['xkdpackage',],
)
  • 使用命令行將模塊打包:python setup.py bdist_wheel
打包後會生成一些目錄:build、dist、xkdpackage.egg-info
  • 在PYPI平臺註冊帳號,在郵箱中認證鏈接,連接:https://pypi.org/

day37-01.png

  • 在用戶的家目錄下建立~/.pypirc文件,此文件中配置PyPI訪問地址和帳號;
  • 安裝twine的命令行:pip install twine
  • 將打包好的模塊發送到PYPI平臺:twine upload dist/*
  • 能夠發送到公司的PYPI服務器,若是公司搭建了pypiserver服務器,那麼能夠直接將tar.gz的包放在對應的目錄下,公司內部下載便可;

參考:https://www.9xkd.com/user/pla...html

相關文章
相關標籤/搜索