pip install 命令安装了我要求的其他模块

The pip install command installs other modules than I asked for

我在虚拟环境中安装模块时遇到问题。当我安装一个模块时,比如一个模块请求,然后尝试输入pip list,出现之前有几个我从来没有安装过的模块

这是我第一次做的时候:

Package    Version
---------- -------
pip        20.2.3
setuptools 41.2.0

这是我要安装的第一个模块,它是请求:

Package    Version
---------- ---------
certifi    2020.6.20
chardet    3.0.4
idna       2.10
pip        20.2.3
requests   2.24.0
setuptools 41.2.0
urllib3    1.25.10

我想为我的应用程序创建 requirements.txt,但是当我安装我需要的每个模块时,出现了更多不需要的模块。

我看到了有关虚拟环境的教程,但我没有发现他们遇到过这种情况。

我该如何解决这个问题?

  • 确保您首先使用
  • 引用正确的 python 或 pip 版本

python3 pip3

  • 尝试通过pip uninstall卸载现有模块

  • 试试 Anaconda

当您安装一个包时,pip 也会自动安装该包的所有依赖项。

在您的情况下,requests 取决于 certifichardetidnaurllib3,因此它们也会被安装。您不需要在 requirements.txt.

中列出这些包

如果您想可视化 pip 包的依赖关系,请查看 pipdeptree


好处: 存在像 poetry 这样的依赖管理器,它可以跟踪您的项目需求。如果您以后不想手动维护需求文件,您可能想看看它。

这些模块依赖于 requests 模块。 如果你想使用这个 requests 模块,你必须有这些依赖项。否则你会得到一个异常 ModuleNotFoundError: No module named 'urllib3'.