python3 pip loading egg is deprecated 警告的解决方法
本文最后更新于 2024年2月4日 凌晨
解决 egg is deprecation 警告
python3 -m pip install some_package 时发现 exploitable 有警告:
DEPRECATION: Loading egg at exploitable-1.32-py3.12.egg is deprecated. pip 24.3 will enforce this behaviour change. A possible replacement is to use pip for package installation.
Discussion can be found at https://github.com/pypa/pip/issues/12330
pip 24.3 将废弃 egg 形式的 python package, 根据 github issue [1] 的信息 pip 24.3 将在 October 2024 发布。可以使用下面的方法,要去掉上面的警告信息。
1 |
|
一般情况下,不用重新写 pyproject.toml ,执行上面命令就可以了。
在 Wheel 中添加二进制文件的方法
根据python 官方的文档,MANIFEST.in 只对 source distributions (sdist) 起作用。
MANIFEST.in does not affect binary distributions such as wheels.
要想给 wheel 添加非纯 python 的文件,有一些困难,主要是一些使用 Extension 的 Python Package 会遇上这个问题。通过研究发现,可以控制 setup.py bdist_wheel
的参数达到打包so 文件的效果。
执行 python3 setup.py bdist_wheel --help
,可以看到详细的参数。
1 |
|
利用--bdist-dir
参数,修改生成wheel distributions 的目录可以达到目的。
1 |
|
修改 setup.py 后,重新执行 python3 -m build --wheel
即可。
参考信息
[1] Remove support for installed .egg distributions
[2] Packaging Python Projects
[3] Writing the Setup Script
[4] Packaging and distributing projects
[5] wheel Documentation