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