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...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。