Python `no module pip.__main__;` 尝试安装模块时出错

Python `no module pip.__main__;` error when trying to install a module

我的 Raspberry Pi 出现以下错误:No module named pip__main__; 'pip' is a package and cannot be directly executed

当我在终端输入时:sudo python3 -m pip install mp3play

这是什么原因造成的,我该如何解决才能安装模块 mp3play

pip 是一个独立的可执行文件。如果pip如果在你的路径中,你可以直接执行

pip install mp3play

如果pip不在你的路径中,那么你需要导航到pip所在的目录,然后执行上面的。

如果需要,将 sudo 添加到命令中。

您遇到的确切错误是由于 pip 是一个包,但 -m 用于执行模块。

编辑:pip 还带有几个指向不同 Python 安装的有用的别名函数。通常,pip 指向您的主要 Python 安装(您在执行 python 时输入的那个),pipV 其中 V 是一个数字,例如 23 将安装添加到版本 V 的主要 Python(pip3 添加到您的 python3 环境)。最后是 pipV.S ,其中 V 与之前相同, S 是颠覆。例如 pip3.4 安装 Python 3.4.

Pip 不仅是一个独立的可执行文件,它还是一个 python 模块。

事实上,在 python 文档中,它直接推荐使用 -m 语法来使用 pip 安装包。

https://docs.python.org/3.5/installing/index.html#basic-usage:

The standard packaging tools are all designed to be used from the command line.

The following command will install the latest version of a module and its dependencies from the Python Packaging Index:

python -m pip install SomePackage

我的猜测是您系统的 pip(可执行文件)被 python2 版本的 pip 可执行文件隐藏。但听起来您没有安装 pip(模块),因此 python3 可执行文件可以找到它,因此您可能需要专门重新安装 pip(模块)。

为此使用 python3 -m ensurepip (docs for ensurepip) 如果从您的 python3 解释器的角度来看它不存在,它将安装 pip。

另一个问题可能是它在您的当前目录中找到一个名为 pip 的文件、可执行文件或目录,并且它试图将 pip 视为一个模块,但它不是实际上是一个模块。

如果不是我不确定。但绝对不是,因为 pip 不是模块。

我遇到了同样的问题。我发现一个旧的 pip 目录是 python 2.7 安装遗留下来的,位于 C:\Users\my-username\pip。这导致 python 尝试从那里加载 pip 并失败。

我删除了那个目录,我的错误变成了 No module named pip.

我还没有解决问题,但我正在 http://bugs.python.org/issue29586

解决它

我遇到了同样的问题,none 之前的答案为我解决了。

当我卸载并重新安装 python 到我的电脑时出现错误。看起来以前存在的 pip 版本没有完全删除,当我尝试使用 python -m pip install package 导入它时,它实际上是在尝试调用以前的版本。

先解决手动删除以下位置的pip文件夹:

C:\Users\username\pip
C:\Users\username\AppData\Local\pip
C:\Users\username\AppData\Local\Programs\Python\Python**\lib\site-packages\pip***
C:\Python**\pip

然后下载get-pip.py.

最后,导航到您下载它的文件夹,然后 运行:

python get-pip.py

此过程应该重新安装 pip 并解决问题。

解释:

当现有的 pip 模块在升级时可能受到影响时,就会发生这种情况。

您可能会在 site-packages 中观察到任何需要的文件/文件夹都已使用前导 ~ 重命名,例如 pip 更改为 ~ip 或子文件夹前导 ~.

所以,在引用模块pip时,如果找不到需要的可执行文件。

发生这种情况的原因是 read:

When uninstalling a package, pip will now rename it in place to a name that cannot be imported, and once it has confirmed that everything will succeed (including installing new versions if it’s doing an upgrade), only then will it delete those folders. If something fails, it renames them back.

解决方案:

除了解决方案 之外,您还可以使用全新安装 pip 模块:

py <-version> -m ensurepip --upgrade

其中 <-version> 是一个可选参数,可以用 python 的版本替换你一直面临的问题 -3.8.

Python自带一个ensurepip模块,可以在Python环境下安装pip。这将安装 pip 模块,该模块最初与您一直使用的 python 版本一起打包。

Post 您可以 运行 将 pip 端口升级到较新版本的升级命令。

py <-version> -m pip install --upgrade pip

如果您遇到任何 EnvironmentError 权限,您可以附加 --user 选项。

参考:

  1. pip installation