gpt4 book ai didi

python-3.x - pip vs python -m pip 为什么 pip 命令抛出模块对象不可调用错误

转载 作者:行者123 更新时间:2023-12-03 16:28:43 30 4
gpt4 key购买 nike

我看过类似的帖子

pip install vs python3 -m pip install

这并没有真正澄清这个问题。
我是 Python 新手,只是遵循基本的 python 3 教程,他们提到 pip 作为依赖项管理器,他们提到它应该用作 pip install dependency_here
我正在使用 Python 3.8.0,在 Windows 上全新安装(适用于所有用户,因此它安装在 C:\Program Files (x86)\Python38-32 下)

而且我无法运行 pip 命令。我收到一个模块错误,我不知道这是怎么回事。

$ pip --version
Traceback (most recent call last):
File "c:\program files (x86)\python38-32\lib\runpy.py", line 192, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\program files (x86)\python38-32\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Program Files (x86)\Python38-32\Scripts\pip.exe\__main__.py", line 9, in <module>
TypeError: 'module' object is not callable

但是,我可以使用 python -m pip命令
$ python -m pip --version
pip 19.3.1 from C:\Users\iberodev\AppData\Roaming\Python\Python38\site-packages\pip (python 3.8)

并用它安装模块。

问题是为什么我不能使用大多数教程提到的命令,甚至官方 pip 存储库都用于示例:
https://pypi.org/project/Flask/#Installing

我想知道为什么我有这个错误。 因为它似乎并不常见

谢谢!

更新 1 (2019 年 11 月 2 日):感谢答案,我发现用户和系统的 PATH 有 pip 乱。
我决定清除它并重新安装 Python 3.8.0 64 位版本,现在看起来一切都很好:
$ python --version
Python 3.8.0

和 pip
$ pip --version
pip 19.2.3 from c:\users\iberodev\appdata\local\programs\python\python38\lib\site-packages\pip (python 3.8)

和路径
$ echo $PATH | tr \: \\n | grep "Python"
/c/Users/iberodev/AppData/Local/Programs/Python/Python38/Scripts
/c/Users/iberodev/AppData/Local/Programs/Python/Python38

最佳答案

检查您的 path环境变量。有一个path对于当前用户(没有提升的权限、用户环境变量)和 path对于系统(提升的权限,系统环境变量)。现在,调用pip不使用它作为 python 方法( python -m pip ),

  • 您的 path必须包含一个指向 Scripts 的条目Python 安装中的文件夹(当然还有指向包含 python.exe 的文件夹的条目)。对于您想要使用的任何安装(用户或系统)都是如此。
  • 如果您想调用pip从系统 Python 安装向该安装添加软件包,您需要从具有提升权限的命令提示符调用它(类似于在 Linux 上使用 sudo)。

  • 我怀疑第二 pip 是导致您遇到错误的原因。

    不完全确定是谁创造了 \AppData\Roaming\Python\Python38\site-packages ,但这不是您可以找到 Python 安装的地方。 Python 用户安装将位于 \AppData\Local\Programs\Python .可能是 AppData\Roaming\...文件夹由 pip 使用(在系统安装之外)在没有提升权限的情况下调用以安装软件包。

    原则上,我建议在 Windows 10 上只安装 Python 的用户。根据我的经验,对于大多数应用程序,您不需要系统安装。而且我宁愿使用64位版本。但这取决于你打算做什么。

    关于python-3.x - pip vs python -m pip 为什么 pip 命令抛出模块对象不可调用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58646030/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com