Python: Packaging with Wheel and egg
最后发布时间:2023-08-01 09:29:22
浏览量:
Wheel和Egg都是python的打包格式,目的是支持不需要编译或制作的安装过程,实际上也是一种压缩文件,将.whl的后缀改为.zip即可可看到压缩包里面的内容。按照官网说法,wheels是发行版Python的新标准并且要取代.egg
运行python setup.py install命令安装Python包时,最终的结果可以是Egg包(.egg)或Wheel包(.whl),具体取决于项目的配置和设置。
在早期阶段,Python项目通常使用Egg包作为分发的格式。Egg包是一种基于Python的打包格式,可以包含源代码、依赖项和其他资源。但是,随着时间的推移,Wheel包成为更为常见和推荐的分发格式。
Wheel包是一种二进制分发格式,它提供了更好的性能和安装速度。它可以包含预编译的二进制文件、C语言扩展模块和其他必要的资源。Wheel包的文件名以.whl作为扩展名。
在运行python setup.py install命令时,如果项目配置为生成Egg包,那么安装过程将生成Egg包并将其安装到Python环境中。如果项目配置为生成Wheel包,那么安装过程将生成Wheel包并将其安装到Python环境中。
通常情况下,现代的Python项目会更倾向于使用Wheel包进行分发和安装,因为它具有更好的性能和跨平台性。
distutils
hello.py
def hello_fun():
print "i say hello to you"
setup.py
from distutils.core import setup
setup(
name="hello_module",
version="1.0",
author="ljk",
author_email="wilber@sh.com",
py_modules=['hello'],
)
setuptools
printtest.py
def test():
print('print test')
setup.py
from setuptools import setup
setup(name='printtest',
version='1.0',
py_modules=['printtest'],
)
python setup.py sdist
python setup.py bdist_wheel
python setup.py bdist_egg
https://www.cnblogs.com/wuzhiblog/p/python_make_egg_or_whl.html
(base) ➜ 01 tree dist
dist
├── printtest-1.0
│ ├── build
│ │ ├── bdist.linux-x86_64
│ │ └── lib
│ │ └── printtest.py
│ ├── dist
│ │ └── printtest-1.0-py3.8.egg
│ ├── PKG-INFO
│ ├── printtest.egg-info
│ │ ├── dependency_links.txt
│ │ ├── PKG-INFO
│ │ ├── SOURCES.txt
│ │ └── top_level.txt
│ ├── printtest.py
│ ├── __pycache__
│ │ └── printtest.cpython-38.pyc
│ ├── setup.cfg
│ └── setup.py
└── printtest-1.0.tar.gz
python setup.py install
直接在setup.py的同目录放置一个setup.cfg:
[easy_install]
index_url = https://pypi.tuna.tsinghua.edu.cn/simple
import printtest
printtest.test()
参考
https://www.jb51.net/article/180223.htm
https://www.jb51.net/article/138538.htm