You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pytest安装后site-packages目录与pip列表显示问题咨询

关于pytest安装结构与pip列表显示的疑问解答

为什么_pytest会被安装但未在pyproject.toml中显式配置?

pytest采用src布局(核心代码放在src目录下),通过setuptools的自动包发现机制管理安装目录。它的pyproject.toml中会包含类似如下的配置:

[tool.setuptools.packages.find]
where = ["src"]
include = ["*"]

该配置会让setuptools自动扫描src目录下所有含__init__.py的文件夹,将它们作为pytest包的一部分安装——_pytest就是其中的内部子包,和pytest目录同属pytest发布包的内容,无需单独显式列出。

你提到的testing/example_scripts等目录虽有__init__.py,但因不在src目录下,不会被setuptools的包发现机制纳入安装范围。另外,pytest已弃用传统的setup.py,转而使用pyproject.toml作为唯一构建配置文件,所以仓库中找不到setup.py。

为什么pip list和pipdeptree不显示_pytest?

pip list与pipdeptree仅列出独立发布的PyPI包,而_pytest并非单独发布的包,它是pytest包的内部子目录/子包,属于pytest整体的一部分。

site-packages下的文件夹不都是独立包,只有在PyPI单独发布、通过pip install单独安装的包才会被pip list列出。下划线开头的命名只是Python社区约定的“内部/私有模块”标识,这和pip是否显示它无关,核心原因是它不属于独立包范畴。

内容的提问来源于stack exchange,提问作者Han Qi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 20:22:42