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感兴趣,
这里推荐一下我的学习交流圈QQ群:895 797 751,
里面都是学习python的,
在PYPI平台注册账号,在邮箱中认证连接,链接:https://pypi.org/;
- 在用户的家目录下创建~/.pypirc文件,此文件中配置PyPI访问地址和账号;
- 安装twine的命令行:pip install twine;
- 将打包好的模块发送到PYPI平台:twine upload dist/*;
- 可以发送到公司的PYPI服务器,如果公司搭建了pypiserver服务器,那么可以直接将tar.gz的包放在对应的目录下,公司内部下载即可;