我发现一个包在venv中不能用,因为它里面使用了setuptools的相关模块,去官方文档里查了一下,3.12中venv默认不装setuptools了,我想知道哪里可以查到原因呢?还有为什么3.12环境中有setuptools,venv里面却没有呢?
Changed in version 3.12: setuptools is no longer a core venv dependency.
➜ ~ docker run python:3.11-alpine /bin/sh -c "python3 -m venv ./test_venv && source ./test_venv/bin/activate && pip3 list"
Package Version
---------- -------
pip 23.2.1
setuptools 65.5.0
[notice] A new release of pip is available: 23.2.1 -> 23.3.2
[notice] To update, run: pip install --upgrade pip
➜ ~ docker run python:3.12-alpine /bin/sh -c "python3 -m venv ./test_venv && source ./test_venv/bin/activate && pip3 list"
Package Version
------- -------
pip 23.2.1
[notice] A new release of pip is available: 23.2.1 -> 23.3.2
[notice] To update, run: pip install --upgrade pip
➜ ~ docker run python:3.12-alpine /bin/sh -c "pip3 list"
Package Version
---------- -------
pip 23.2.1
setuptools 69.0.2
wheel 0.42.0
[notice] A new release of pip is available: 23.2.1 -> 23.3.2
[notice] To update, run: pip install --upgrade pip
greyli
(Grey Li)
2
第一个问题可以参考这里:
另附搜寻方法:在对应文档页面点左侧的「Show Souce」找到文档页面源码,然后点右上角「History」查看修改历史,找到相关 commit 以及对应的 PR。
2 个赞
感谢辉哥,又学到一项技能
刚刚看了下这个issue,发现下面好多人引用 ,看来没适配的库还有很多
frostming
(Frost Ming)
4
Python 打包近年做的改进主要目的(PEP 517/PEP 518/PEP 660)就是让更多的构建工具成为可能,setuptools不再是唯一的选择。既然百家齐放了就会各有所爱,那再在venv里默认装setuptools就不太合适了
但很多包要么不了解这种改动,要么很久不更新,没跟上这个变化,属于积重难返。
2 个赞