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

Python 3.x pip vs python-m pip为什么pip命令抛出模块对象是不可调用的错误,python-3.x,pip,Python 3.x,Pip,我见过类似的帖子,比如 这并不能真正澄清这个问题。 我是Python新手,刚刚学习了一个基本的Python3教程,其中他们提到pip是依赖关系管理器,并且在这里提到它应该用作pip安装依赖关系 我使用的是Python 3.8.0,全新安装在Windows上(适用于所有用户,因此它安装在C:\Program Files(x86)\Python38-32下) 我不能运行pip命令。我得到一个模块错误,我不知道是怎么回事 $ pip --version Traceback (most recent

我见过类似的帖子,比如

这并不能真正澄清这个问题。 我是Python新手,刚刚学习了一个基本的Python3教程,其中他们提到pip是依赖关系管理器,并且在这里提到它应该用作
pip安装依赖关系

我使用的是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
并用它安装模块

问题是为什么我不能使用大多数教程提到的命令,甚至官方pip存储库也使用了以下示例:

我想知道为什么我会犯这样的错误。因为这似乎并不常见

谢谢

更新1(2019年11月2日):多亏了这个答案,我发现用户和系统的路径有点乱。 我决定清除它并重新安装Python 3.8.0 64位版本,现在看起来一切正常:

$ python --version
Python 3.8.0
还有皮普

$ 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

检查
路径
环境变量。当前用户有一个
路径
(无提升权限,用户环境变量),系统有一个
路径
(提升权限,系统环境变量)。现在,要调用
pip
,而不将其用作python方法(
python-mpip

  • 您的
    路径
    必须包含一个指向Python安装中
    脚本
    文件夹的条目(当然还有一个指向包含
    Python.exe
    的文件夹的条目)。这适用于您想要使用的任何安装(用户或系统)
  • 如果要从系统Python安装中调用
    pip
    ,以向该安装中添加软件包,则需要从具有提升权限的命令提示符中调用它(类似于在Linux上使用
    sudo
我想第二点是你犯错误的原因

不完全确定是谁创建了
\AppData\Roaming\Python\Python38\site软件包
,但这不是Python安装的地方。Python用户安装将位于
\AppData\Local\Programs\Python
中。调用
AppData\Roaming\…
文件夹时,如果没有提升的安装软件包的权限,
pip
(系统外安装)可能会使用该文件夹


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

您是否检查过是否安装了多个python版本
python-mpip
似乎在目录
C:\Users\iberodev\AppData\Roaming\python\Python38\site packages\
中查找,而调用
pip
则在
“C:\Program Files(x86)\Python38-32\”
中查找。是的,有类似的情况。不知道为什么。在只重新安装了一个版本后,我遇到了同样的问题。我怀疑当时的路径有点混乱,为所有用户安装Python可能是问题的一部分。助教。(在更新1上添加了修复)可能值得你检查一下,我的路径太乱了,我决定清除所有路径并重新安装Python3.8.0 64位。很高兴它有帮助!虽然我不能告诉你错误的确切来源;-)不管怎么说,既然你已经在做了,也来看看吧。这是管理依赖关系的一个好方法,例如,如果你从事不同的项目。
$ echo $PATH | tr \: \\n | grep "Python"
/c/Users/iberodev/AppData/Local/Programs/Python/Python38/Scripts
/c/Users/iberodev/AppData/Local/Programs/Python/Python38